0

我创建了一个新的基于导航的应用程序项目。然后在 MainWindow.xib 中,我向导航栏添加了一个按钮。我想将一个新视图推送到可以输入信息的屏幕上,该信息将作为对象添加到 UITableView 的数组中。

但我不知道在哪里编写 IBAction 以将按钮链接到(Appdelegate 或 RootViewController)?因为正如您在屏幕截图中看到的那样,它位于 MainWindow.xib 中,因为 RootViewController 只是一个 Table 并且不包含导航。但在 MainWindow.xib 的文档视图中,它位于 RootViewController 下。

我是否也必须在 XIB 中创建一个新的 View Controller 并为它创建一个 IBOutlet?

我尝试将代码放入我的 AppDelegate 并将按钮引用到委托,但它不起作用。

请帮忙。提前致谢。

请参阅此处的屏幕截图:http: //i56.tinypic.com/5djbcm.png

4

1 回答 1

1

当你问自己一个问题“这个动作属于哪里”时,它很可能是一个控制器,因为控制器在你的应用程序中处理事件流。下一个问题 - “当这个动作发生时哪个控制器负责?哪个控制器对这个动作最感兴趣?”。在您的情况下,答案是根表控制器(RootViewController实例)。在其中创建一个IBAction方法,将表单控制器(用于输入信息的控制器)推送到导航控制器。

// somewhere in RootViewController.m
- (IBAction)addNewEntry {
    NewEntryFormController *c = [[[NewEntryFormController alloc] init] autorelease];
    // ...

    [self.navigationController pushViewController:c animated:YES];
}
于 2011-03-15T20:13:09.580 回答