Я пытаюсь создать всплывающее окно, как описано в моем предыдущем вопросе. На самом деле я получил ответ, но теперь у меня новая проблема. Я могу заставить представление появиться, если я не сделаю instantiateWithOwner
, но оно ни на что не реагирует (просто зависло).
Короче говоря, я настроил файл popup.xib, который представляет собой просто представление с кнопкой и меткой. Мой код ниже должен заставить его появляться и исчезать при нажатии кнопки.
Я прочитал документацию о том, что instantiateWithOwner
выполняет всю магию подключения представления к своим кнопкам обратного вызова, поэтому имеет смысл, что ничего не происходит, когда его нет в коде. (ссылка)
Дело в том, что если я включу его в свой код, я получу ошибку компилятора 'PopupViewConrtoller' does not have a member named 'instantiateWithOwner'
.
Я пробовал искать в списке автозаполнения, но ничего похожего не нашел.
Мой код:
ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBAction func showPopup(sender: AnyObject) {
// This line makes it appear on the screen, but not respond to anything.
var x = PickerPopupViewConrtoller(nibName: "PickerPopup", bundle: nil)
// This line does not compile.
var x = PickerPopupViewConrtoller(nibName: "PickerPopup", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as? PickerPopupViewConrtoller
x.show(self.view)
}
}
Попупвиевконтроллер
import UIKit
class PickerPopupViewConrtoller : UIViewController {
func show(tView : UIView) {
tView.addSubview(self.view)
}
@IBAction func done(sender: AnyObject) {
self.view.removeFromSuperview()
}
}