2011-04-07 93 views
2

我有一個UINavigationController w /三個視圖和UINavigationBar中的每個視圖相關聯的按鈕。由於我是XCode的新手,我試圖理解如何將事件處理代碼用於管理視圖之間的切換。如何管理UINavigationController視圖中的事件以切換視圖?

視圖A(根)

轉到視圖B(按鈕)

視圖B

返回(按鈕)Gotto視圖C(按鈕)

視圖C

返回(按鈕)

我看到如何捕捉事件時,「轉到視圖B「被點擊,但由於該按鈕是在View A中創建的,因此它無權訪問UINavigationController來切換視圖。

任何樣本或其他信息的鏈接讚賞。

+0

見新的相關問題瓦特/詳細代碼http://stackoverflow.com /問題/ 5598571 /如何-DO-I-結構最uinavigation控制器和相關的 - 視圖 - 控制器-FO。 – ChrisP 2011-04-08 18:35:24

回答

2

如果我正確理解你的問題,看看:

UINavigationControllerDelegate:http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationControllerDelegate_Protocol/Reference/Reference.html

UINavigationBarDelegate:http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationBarDelegate_Protocol/Reference/Reference.html

如果你只是試圖推動使用navigationController一個新的觀點,它是(在您的GoToViewB按鈕/動作中):

YourNewViewController *yourNewViewController = [[YourNewViewController alloc] initWithNibName:nil bundle:nil]; 
[self.navigationController pushViewController:yourNewViewController animated:YES]; 
[yourNewViewController release]; 

現在你應該在你的newViewController中,它將有一個返回按鈕返回到前一個視圖。您可以使用相同的邏輯上面去下一個視圖等。如果您希望通過編程彈出一個控制器,可以使用:

[self.navigationController popViewControllerAnimated:YES]; 
+0

問題是self.navigationController不在視圖控制器中的按鈕及其事件處理程序所在的範圍內。我理解在導航控制器中對視圖的操縱,它只是導航控制器在對象層次結構中比包含按鈕和處理程序的視圖高一級。 – ChrisP 2011-04-08 01:16:02

+0

您的navController與視圖A,B和C有關嗎? – Rog 2011-04-08 01:17:55

+0

查看上面有關問題​​的註釋,以鏈接到帶有詳細代碼的新問題。 – ChrisP 2011-04-08 18:36:56