从 UIButton 向 ViewController 发送通知

Posted

技术标签:

【中文标题】从 UIButton 向 ViewController 发送通知【英文标题】:Sending a Notification from a UIButton to a ViewController 【发布时间】:2012-11-28 15:29:16 【问题描述】:

我在故事板的外部 Nib 中创建了一个 UITableViewCell。我已经设置了一个从 UITableViewController 到另一个 ViewController 的 segue,它在测试时效果很好。

我想知道如何让 Nib 中的 UIButton 调用 [performSegueWithIdentifier:@"identifier" sender:self]; 按下时。

有什么想法吗?我还是很业余,如果你能解释清楚,我真的很感激。

问候, 迈克

【问题讨论】:

【参考方案1】:

你也可以在故事板上完成同样的事情;右键单击按钮并将箭头拖动到要导航到的视图控制器,它将提供 segue 选项(推送、模式、自定义),然后选择一个。

【讨论】:

当按钮在不同的笔尖时,这可能吗? 我不相信,你用的是哪个sdk,是ios 5,因为以前的版本没有storyboard 对于大多数简单的任务 storyboard 应该足够了,你是否有特定的理由使用 nib 文件(比如可重用性),否则我会建议你使用 storyboard 而不是单独的 nib 文件 我决定做这个建议。我删除了外部笔尖并将单元格重建为原型单元格。容易得多。非常感谢!【参考方案2】:

在你的 ViewController.h 中这样做:

- (IBAction)buttonPressed:(id)sender;

在您的 .m 文件中执行以下操作:

- (IBAction)buttonPressed:(id)sender 
    [self performSegueWithIdentifier:@"identifier" sender:self];

现在转到您的 .xib 文件并将按钮选择器连接到您的控制器。

【讨论】:

如果Button在单独的nib中,如何调用ViewController中的IBAction? 您可以将按钮操作连接到应该是您的 ViewController 的“文件所有者”。 我决定移除笔尖并创建一个原型单元。因此我不会尝试这个。 +1 寻求帮助。【参考方案3】:

在调用的 VC 中处理它

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

    if ([[segue identifier] isEqualToString:@"identifier"]) 
        >yoursecondVC> *secondViewController = [segue destinationViewController];
        secondViewController.<param> = <param>;
    


【讨论】:

我的 segue 工作正常,它只是从外部笔尖中的按钮调用它。

以上是关于从 UIButton 向 ViewController 发送通知的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIButton 从 UIPickerView 向 UILabel 显示输出

向 UIButton 添加插座

圆角 UIButton - 无法对齐文本

向 UIButton 添加其他视图

向uibutton添加声音

将自定义单元格从一个视图控制器传递到另一个视图控制器