2008-12-12 70 views
0

對不起 - 這可能是一個簡單的問題,我是新的iPhone開發,仍然包裝我的頭圍繞視圖vs ViewControllers。UINavigationController推送視圖

我有一個NavigationViewController,我可以使用在RootViewController的以下方法連接到一個欄按鈕項目推瀏覽:

- (IBAction)switch:(id)sender { 
     NSLog(@"Swith..."); 
     LibraryViewController *varLibraryViewController = [[LibraryViewController alloc] initWithNibName:@"LibraryViewController" bundle:nil]; 
     [[self navigationController] pushViewController:varLibraryViewController animated:YES]; 
    } 

我想打電話從一個按鈕同樣的方法在同一視圖目前已加載。基本上我想讓頂部的Bar Button調用與視圖上的按鈕相同的方法。我想知道如何從視圖控制器加載的視圖中調用ViewController中的方法。希望這是有道理的。

我是否需要創建RootViewController的實例?我會認爲這已經被實例化了。謝謝。

回答

1

你的RootViewController應該有它自己的xib文件。在這個xib中,RootViewController由名爲「File's Owner」的對象表示。您可以將視圖上的按鈕鏈接到文件所有者,就像您可以將事物鏈接到MainMenu.xib中的RootViewController一樣。

+0

本的答案也有幫助,但你的答案更直接,我所需要的。 – Sean 2008-12-15 14:39:56

1

你要申報你的方法作爲IBAction爲你的頭文件:

 
- (IBAction) myMethod: (id) sender; 

保存你的頭,然後切換到Interface Builder中。右鍵單擊欄按鈕,然後從selector標記拖到您的視圖控制器對象(可能是文件所有者)。當你釋放時,應該給你一個可用動作的彈出式菜單,並且應該可以選擇myMethod

如果你沒有得到這個彈出窗口,你可能需要確保你的文件所有者類設置正確:在文件窗口中選擇文件所有者,然後從菜單中選擇「工具」>「身份檢查器」。在檢查器中,將您的視圖控制器的類鍵入Class字段。

+0

我認爲他說酒吧按鈕已經連接到它 – 2008-12-13 23:20:15

4

順便說一句,你粘貼在那裏的代碼泄漏你的LibraryViewController。您需要在推送後明確釋放它,或者在創建時自動釋放它。

相關問題