2011-03-15 105 views
0

我創建了一個新的基於導航的應用程序項目。然後在MainWindow.xib中,我向導航欄添加了一個按鈕。我想將一個新的視圖推到屏幕上,我可以輸入信息,這些信息將作爲一個對象添加到UITableView的數組中。帶添加按鈕的基於導航的應用程序

但我不知道在哪裏寫IBAction來鏈接按鈕(Appdelegate或RootViewController)?正如你在屏幕截圖中看到的,它駐留在MainWindow.xib中,因爲RootViewController僅僅是一個表格,並且不包含導航。但是在MainWindow.xib的文檔視圖中,它位於RootViewController下。

我是否還必須在XIB中創建一個新的視圖控制器,併爲它創建一個IBOutlet?

我試着將代碼放到我的AppDelegate中,並將該按鈕引用到委託,但它不起作用。

請幫忙。提前致謝。

在這裏看到的截圖:http://i56.tinypic.com/5djbcm.png

回答

1

當你問自己一個問題:「哪裏這個動作屬於」這是最有可能的控制器,因爲控制器處理事件在你的應用程序流。下一個問題 - 「當這種行爲發生時,什麼樣的控制者負責?哪個控制者對這個行爲最感興趣?」。在你的情況下回答根表控制器(RootViewController實例)。在其中創建一個IBAction方法,它會將窗體控制器(用於輸入信息)推送到導航控制器。

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

    [self.navigationController pushViewController:c animated:YES]; 
}