我创建了一个新的基于导航的应用程序项目。然后在MainWindow.xib中我向导航栏添加了一个按钮。我想将一个新视图推送到我可以输入信息的屏幕上,该信息将作为对象添加到UITableView的数组中。
但我不知道在哪里编写IBAction来将按钮链接到(Appdelegate或RootViewController)?因为正如您在屏幕截图中看到的那样,它位于MainWindow.xib中,因为RootViewController仅仅是一个表,并且不包含导航。但是在MainWindow.xib的文档视图中,它位于RootViewController下。
我是否还必须在XIB中创建一个新的View Controller并为它创建一个IBOutlet?
我尝试将代码放在AppDelegate中并将该按钮引用到委托但不起作用。
请帮忙。提前谢谢。
请参见此处的屏幕截图:http://i56.tinypic.com/5djbcm.png
答案 0 :(得分:1)
当你问自己一个问题“这个动作属于哪里”时,它很可能是一个控制器,因为控制器会处理你应用中的事件流。下一个问题 - “当这个动作发生时,什么控制器负责?什么控制器对这个动作最感兴趣?”。在您的情况下,答案是根表控制器(RootViewController
实例)。在其中创建一个IBAction
方法,将表单控制器(用于输入信息的控制器)推送到导航控制器。
// somewhere in RootViewController.m
- (IBAction)addNewEntry {
NewEntryFormController *c = [[[NewEntryFormController alloc] init] autorelease];
// ...
[self.navigationController pushViewController:c animated:YES];
}