按钮单击事件(UIButton TouchUpInside 操作)不起作用 - IOS/Swift
Button click event (UIButton TouchUpInside action) not working - IOS/Swift
在我的应用程序的情节提要中,有一个 UIViewController(child) 加载到另一个 UIViewController(parent) 中。
这是我在父视图控制器中使用的代码,用于在父视图控制器中的所有子视图(包括导航栏)上加载子视图控制器。
let window: UIView? = UIApplication.sharedApplication().keyWindow;
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil);
let viewController: UIViewController = storyboard.instantiateViewControllerWithIdentifier("CPBackConfirmMessageUIView");
window?.addSubview(viewController.view);
这是他们在我的故事板中的样子
这是在父视图中加载子视图控制器后的样子
在子视图控制器内有两个按钮,您可以see.I 已向子视图控制器内的那些按钮添加 (TouchUpInside) 操作 class 但它不起作用。但是 ViewDidLoad 方法工作正常(我添加了一些动画并且它们工作正常)。
有人可以告诉我如何为这些按钮编写操作并让它们工作,或者让我知道我在这里做错了什么。任何帮助将不胜感激。
编辑:
这就是我编写 IBAction
的方式
@IBAction func abc(sender: AnyObject) {
print("Worked");
}
尝试使用 child viewController
作为 属性。在当前的实现中,viewController
object 应该在方法完成后立即释放。 属性 将确保 viewController
object 会在您按下按钮时激活。
所以代替:
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);
}
}
在我的应用程序的情节提要中,有一个 UIViewController(child) 加载到另一个 UIViewController(parent) 中。
这是我在父视图控制器中使用的代码,用于在父视图控制器中的所有子视图(包括导航栏)上加载子视图控制器。
let window: UIView? = UIApplication.sharedApplication().keyWindow;
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil);
let viewController: UIViewController = storyboard.instantiateViewControllerWithIdentifier("CPBackConfirmMessageUIView");
window?.addSubview(viewController.view);
这是他们在我的故事板中的样子
这是在父视图中加载子视图控制器后的样子
在子视图控制器内有两个按钮,您可以see.I 已向子视图控制器内的那些按钮添加 (TouchUpInside) 操作 class 但它不起作用。但是 ViewDidLoad 方法工作正常(我添加了一些动画并且它们工作正常)。
有人可以告诉我如何为这些按钮编写操作并让它们工作,或者让我知道我在这里做错了什么。任何帮助将不胜感激。
编辑: 这就是我编写 IBAction
的方式@IBAction func abc(sender: AnyObject) {
print("Worked");
}
尝试使用 child viewController
作为 属性。在当前的实现中,viewController
object 应该在方法完成后立即释放。 属性 将确保 viewController
object 会在您按下按钮时激活。
所以代替:
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);
}
}