【发布时间】:2010-09-23 15:51:08
【问题描述】:
我想使用模态视图 (UIViewController) 作为“普通”视图,可以将其推送到导航控制器堆栈上。通常,模态视图是这样呈现的:
LoginViewController *myView = [[MyViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myView];
[self.navigationController presentModalViewController:navController animated:YES];
[myView release];
myView = nil;
[navController release];
navController = nil;
但我想做这样的事情:
[[self navigationController] pushViewController:myView animated:YES];
问题是我的模态视图有一个左右按钮。所以我必须检查视图是如何加载的,并以另一种方式呈现按钮。这背后的想法是有后退按钮。所以我可以多次使用相同的模态视图。
编辑:
@petert:
现在我按照你的例子。我的问题是我使用UINavigationBar 作为模态视图。为了得到这个UINavigationBar,我创建了一个导航控制器。我正在使用导航栏,因为其中有我的按钮。所以检查parentViewController 是否属于UINavigationController 类型对我不起作用。我总是得到一个模态视图。这是我的做法:
// load modal view
MyViewController *myView = [[MyViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myView];
[[self navigationController] presentModalViewController:navController animated:YES];
[navController release];
navController = nil;
[myView release];
myView = nil;
// load as normal view
MyViewController *myView = [[MyViewController alloc] init];
[[self navigationController] pushViewController:myView animated:YES];
【问题讨论】:
标签: iphone objective-c cocoa-touch uiviewcontroller