调用 prepareForSegue 而不是 ib 按钮

Posted

技术标签:

【中文标题】调用 prepareForSegue 而不是 ib 按钮【英文标题】:prepareForSegue is called instead of ib button 【发布时间】:2012-12-24 19:17:54 【问题描述】:

我是 ios 新手,所以请回答我的问题 :)。 我有一个填充了 UIButtons 的动态 UITable。每行两个按钮。按钮显示为图片。在传递到下一个视图之前,我需要保留所选按钮的数据。按钮有标签(在 UITableView 中填充时附加)。 我的问题是程序的正常运行需要调用 -(IBAction)firstButtonTag:(id)sender;或 -(IBAction)secondButtonTag:(id)sender; (用于在单例类中存储标记)并且仅调用 prepareForSegue 方法,但目前该逻辑仅适用于第一列中的按钮,第二列中的按钮称为 prepareForSegue (不调用 -(IBAction)secondButtonTag:(id)发件人;)

提前致谢:)

【问题讨论】:

【参考方案1】:

很难理解您需要什么,但对我来说,您似乎只需要在按下按钮时进行 segue 之前进行一些调用。

只需在按钮操作处理程序中以编程方式执行 segue:

-(IBAction)buttonPressed:(id)sender

  ... // do your stuff here
  [self performSegueWithIdentifier:@"segueId" sender:nil];

您还需要从按钮中删除触发的 segue,并添加手动 segue 并设置其标识符。

【讨论】:

感谢您的回复,但问题是,我正在使用自己的 UITableViewDetaisCell 类,无法调用 performSegueWithIdentifier,因为它是我的 UITableViewDetailsController 的方法。请提供其他建议? 即使您可以将按钮触摸事件绑定到控制器操作处理程序 如果更详细,当在第一列中按下按钮时调用 -(IBAction)buttonPressed:(id)sender 然后只执行SegueWithIdentifier,如果从第二列按下按钮则只执行SegueWithIdentifier -(IBAction)buttonPressed:(id)sender,可能是故事板问题? 我认为当一个按钮同时触发 segue 和 touch 事件处理程序时,调用的顺序是不确定的。所以你需要在事件处理程序中执行 segue。 我已经尝试过 ***.com/questions/12470641/… 帖子中的方法,但它们都对我的情况没有用处,因为调用是从我的 UITableViewCell 类实现的,您能否澄清一下应该在 UITableViewController 类中实现事件处理的位置或在 UITableViewCell 中(其中“-(IBAction)buttonPressed: (id)sender”是成员方法)。

以上是关于调用 prepareForSegue 而不是 ib 按钮的主要内容,如果未能解决你的问题,请参考以下文章

我是不是需要在代码而不是 IB 中调整下载图像的大小以获得更好的性能?

在prepareForSegue方法中防止segue?

在 prepareForSegue 完成之前调用 viewDidLoad

从 UIButton 调用 prepareforSegue?

prepareForSegue 传递索引 0 的值...总是

如何从 prepareForSegue 调用“自我”属性:?