按钮点击事件(UIButton TouchUpInside动作)不工作 - IOS/Swift
问题描述:
在我的应用程序的故事板中有一个UIViewController(child),它加载到另一个UIViewController(父级)中。按钮点击事件(UIButton TouchUpInside动作)不工作 - IOS/Swift
这是我在父视图控制器内部使用的代码,用于将子视图控制器加载到包含导航栏的父视图控制器中的所有子视图中。
let window: UIView? = UIApplication.sharedApplication().keyWindow;
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil);
let viewController: UIViewController = storyboard.instantiateViewControllerWithIdentifier("CPBackConfirmMessageUIView");
window?.addSubview(viewController.view);
这是他们在我的故事板怎么看
这是它的外观子视图控制器在侧父视图
装里面的后子视图控制器有两个按钮,你可以看到。我已经添加(TouchUpInside)动作子视图的控制器类中的e按钮,它不起作用。但ViewDidLoad方法工作正常(我添加了一些动画,他们正在工作)。
有人能告诉我如何写这些按钮的行为,让他们工作或让我知道如果我在这里做任何错误的事情。任何帮助将不胜感激。
编辑: 这是我写我的IBAction为
@IBAction func abc(sender: AnyObject) {
print("Worked");
}
答
尽量用孩子viewController
作为属性。在当前的实现中viewController
对象应该在方法完成后立即释放。物业将确保viewController
对象将在您按下按钮时处于活动状态。
所以不是:
let viewController: UIViewController = storyboard.instantiateViewControllerWithIdentifier("CPBackConfirmMessageUIView");
试试这个:
class YourParentViewController: UIViewController {
var viewController: UIViewController!
func someMethod() {
let window: UIView? = UIApplication.sharedApplication().keyWindow;
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil);
viewController = storyboard.instantiateViewControllerWithIdentifier("CPBackConfirmMessageUIView");
window?.addSubview(viewController.view);
}
}
你叫'addChildViewController'方法? – Khuong
不可以。我怎样才能用我的场景? – GMHSJ
试试这个窗口?.bringSubviewToFront(viewController.view) – Kalpesh