gpt4 book ai didi

ios - 按钮单击事件(UIButton TouchUpInside 操作)不起作用 - IOS/Swift

转载 作者:搜寻专家 更新时间:2023-11-01 05:53:35 26 4
gpt4 key购买 nike

在我的应用程序的 Storyboard 中,有一个 UIViewController(child) 加载到另一个 UIViewController(parent) 中。

这是我在父 View Controller 中使用的代码,用于在父 View Controller 中的所有 subview (包括导航栏)上加载 subview Controller 。

let window: UIView? = UIApplication.sharedApplication().keyWindow;

let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil);
let viewController: UIViewController = storyboard.instantiateViewControllerWithIdentifier("CPBackConfirmMessageUIView");

window?.addSubview(viewController.view);

这是他们在我的 Storyboard中的样子

enter image description here

这是在父 View 中加载 subview Controller 后的样子

enter image description here

如您所见,在 subview Controller 内有两个按钮。我已将 (TouchUpInside) 操作添加到 subview Controller 类内的这些按钮,但它不起作用。但是 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);
}

}

关于ios - 按钮单击事件(UIButton TouchUpInside 操作)不起作用 - IOS/Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36884744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com