2012-02-05 144 views
1

新手在這裏編程我的第一個應用程序(做了幾個教程應用程序)。我使用稱爲「RootViewController」的視圖控制器作爲導航控制器。我已經成功地推上使用以下命令將此稱爲「ClientListViewController」的另一頂視圖控制器:如何將多個視圖控制器推到導航控制器上

[self.navigationController pushViewController:clientListViewController animated:YES]; 

我現在在ClientListViewController並試圖推動其他視圖控制器到所謂的「AddClientViewController」堆棧。我想以UIModalPresentationFormSheet的形式創建一個模態視圖控制器。我試圖使用上面的命令的變體來推動新的視圖控制器,但我不知道如何取代'自我'。我曾嘗試:

[RootViewController.navigationController pushViewController:AddClientViewController animated:YES]; 

和...

[[RootViewController navigationController] pushViewController:AddClientViewController animated:YES]; 

以及這些組合的每個用小「R對這個詞的根。仍然沒有運氣。

爲清楚起見,我用下面的代碼在我的實現文件的頂部。

#import "AddClientViewController.h" 

我以正確的方式接近這個,還是應該使用全新的導航控制器將其添加到?

任何指針大大接收。

非常感謝

回答

3

UIViewController有一個名爲navigationController屬性。如果有屬性,則此屬性指的是最近的包圍UINavigationController。所以你可以在你的ClientListViewController中說self.navigationController

在iOS系統中,我們通常利用類名。所以聽起來像AddClientViewController是一個類名。您需要讓該類的實例將其推送到導航控制器的堆棧上。事情是這樣的:

AddClientViewController *addClientVC = [[AddClientViewController alloc] init]; 
[self.navigationController pushViewController:addClientViewController animated:YES]; 

您可能需要使用不同的init方法或推前設置addClientVC一些性能;這取決於您的實施AddClientViewController

如果你想有模式目前它,你不推導航控制器的堆棧。相反,你做這種方式:

AddClientViewController *addClientVC = [[AddClientViewController alloc] init]; 
addClientVC.modalPresentationStyle = UIModalPresentationFormSheet; 
[self presentViewController:addClientVC animated:YES completion:nil]; 
相關問題