如何以编程方式触发uibarbuttonitem click事件

Jea*_*ott 18 iphone events uibarbuttonitem uiactionsheet ios

我创造了一个 UIActionSheet

UIActionSheet * action = [[UIActionSheet alloc]initWithTitle:@""
                                                              delegate:self
                                                     cancelButtonTitle: @"cancel"
                                                destructiveButtonTitle: @"OK"
                                                     otherButtonTitles: nil];
          [action showInView:self.view];
          [action release];
Run Code Online (Sandbox Code Playgroud)

在取消按钮的事件中,UIActionSheet我想要触发一个事件UIBarButtonItem,这在我看来.

我的问题是如何在UIActionSheet委托方法中触发按钮事件(不触摸按钮)

Ant*_*los 26

另一种方法是避免警告如下:

[[UIApplication sharedApplication] sendAction:barButtonItem.action
                                           to:barButtonItem.target
                                         from:nil
                                     forEvent:nil];
Run Code Online (Sandbox Code Playgroud)


ayo*_*yoy 18

不知道当前的条形按钮项目操作,您可以这样调用它:

[barButtonItem.target performSelector:barButtonItem.action]
Run Code Online (Sandbox Code Playgroud)

然而,这将带来"未知选择器"编译器警告,但这可能会解决.

  • 有没有其他人在这里得到ARC警告"可能导致泄漏"? (5认同)
  • Swift 版本:`_ = editButton.target?.perform(editButton.action)` (2认同)

小智 13

@ ton1n8o的解决方案对我有用.这是swift中的实现:

UIApplication.sharedApplication().sendAction(barButtonItem.action, to: barButtonItem.target, from: nil, forEvent: nil)
Run Code Online (Sandbox Code Playgroud)