从 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 发送通知的主要内容,如果未能解决你的问题,请参考以下文章