如何在导航视图控制器上放置视图?

时间:2010-03-09 13:07:10

标签: iphone uiview uinavigationcontroller

我正在为iPhone应用程序设计UI。我应该如何在导航ViewController上放置UIView对象?

假设viewObj是UIView对象而uiNavControllerObj是Navigation controllet对象?将viewObj放到uiNavControllerObj的语法是什么?

UIView* viewObj;
NavigationController* uiNavControllerObj;

编辑问题:

Can i achieve this by this syntax? 
uiNavControllerObj.view = viewObj;// is this the proper way to achieve 
[rootviewObj addSubview:uiNavControllerObj.view]; 
[uiwindowObj addSubview:rootViewObj];

1 个答案:

答案 0 :(得分:1)

UINavigationControllers不处理UIViews,它们处理UIViewControllers。

如果你的UIViewController是根(第一个)视图控制器的典型用法:

MyRootViewController *myRootViewController = [[MyRootViewController alloc] init];
UINavigationController *navController = [UINavigationController initWithRootViewController:myRootViewController];

UINavigationController使用堆栈来跟踪它管理的ViewControllers。如果你想将另一个推入堆栈(例如,向下钻取表视图控制器),你可以在堆栈顶部的View Controller内部这样做:

AnotherViewController *anotherController = [[AnotherViewController alloc] init];
// every view controller has a reference to it's Navigation Controller
[self.navigationController pushViewController:anotherController];

或者,我只是因为您的问题不是很清楚,您可以使用模态视图控制器覆盖导航控制器。除此之外我还不确定通过将视图“放在”导航控制器之上还有什么意思。