gpt4 book ai didi

ios - UIActionsheet 委托(delegate) clickedButtonAtIndex 永远不会被调用

转载 作者:行者123 更新时间:2023-11-29 00:51:38 26 4
gpt4 key购买 nike

我正在尝试创建一个函数,该函数在从不同的 View Controller 调用时创建一个操作表。问题是,尽管创建了 uiaction 表,但我似乎无法执行任何指定的单击操作。事实上,委托(delegate)永远不会被调用。单击任何按钮时,操作表将被关闭。

我的函数代码是:

func shareAction(){
var sheet: UIActionSheet = UIActionSheet();
print("Calling share action!");
let title: String = "Tell friends, make plans";

sheet.title = title;
sheet.addButtonWithTitle("Cancel")
sheet.addButtonWithTitle("WhatsApp");
sheet.addButtonWithTitle("Facebook");
sheet.addButtonWithTitle("Message");
sheet.addButtonWithTitle("More");
sheet.cancelButtonIndex = 0;
sheet.delegate=self;
sheet.showInView(self.view)

}

func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int)
{
print("clicking the action sheet")
if(buttonIndex ==0){
print("this is 0")
}

这是在扩展 NSObject 和 UIActionSheetDelegate 的类中。我已经仔细阅读了所有文档,但对导致问题的原因感到困惑。

最佳答案

我遇到了同样的问题。问题是处理 ActionSheet 操作的通用类作为委托(delegate)被 ARC 释放。所以委托(delegate) self 被释放,不会被调用。

确保保留实现 ActionSheet 调用的类。例如,您可以将其保存到调用 View Controller 中的 @property 变量中。

关于ios - UIActionsheet 委托(delegate) clickedButtonAtIndex 永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38084709/

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