在执行自定义 segue 之前禁用工具栏 UIBarButtonItem

Posted

技术标签:

【中文标题】在执行自定义 segue 之前禁用工具栏 UIBarButtonItem【英文标题】:Disabling toolbar UIBarButtonItem before performing a custom segue 【发布时间】:2014-03-11 01:43:14 【问题描述】:

我目前正在尝试执行 ios 垃圾样式自定义 segue,其中涉及同一类的视图控制器的弹出和推送(目标视图控制器通过情节提要实例化。)我想禁用其中一个工具栏在 segue 期间的 UIBarButtonItems,以防止用户在执行垃圾动画时意外单击它。但是,似乎只是调用 self.deleteButton.enabled = NO;不起作用。如果我取出 segue 行,按钮就会被禁用。

【问题讨论】:

你是如何声明按钮的? 它是在故事板中创建的按钮,我将引用出口设置为视图控制器中的 deleteButton 变量。 请在您尝试禁用按钮的地方添加代码,您使用的是prepareForSegue:吗? 【参考方案1】:

在方法中

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    if([[segue identifier] isEqualToString:@"YourView"])

        self.btnItem.enabled = NO;
     

【讨论】:

【参考方案2】:

我最终想出了一个解决方案。由于我正在使用自定义动画执行自定义 segue,因此我首先禁用目标视图控制器上的栏按钮,因为它已被推入导航控制器。在我的自定义动画的完成块中,我只是再次重新启用按钮。希望这可以帮助。

【讨论】:

以上是关于在执行自定义 segue 之前禁用工具栏 UIBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章

自定义 Segue 在显示目标视图控制器之前动画为黑色

在 UITableView 中嵌入的自定义 UICollectionView 中执行 Segue

根据在 TableViews 自定义单元格中点击的图像执行 segue

如何实现自定义segue动画?

如何执行从自定义 UITableViewCell(xib) 到另一个 ViewController 的 segue 视图

两个不同的按钮对同一个视图控制器执行 segue,但希望通过一个按钮禁用用户交互以进行 segue