【发布时间】:2012-12-16 18:13:19
【问题描述】:
我在 appDelegate 中创建了一个自定义导航控制器:
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
poemsView = [[[PoemsViewController alloc]initWithNibName:@"PoemsViewController" bundle:nil] autorelease];
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:poemsView] autorelease];
self.navigationController.navigationBarHidden = YES;
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
所以问题是我需要来自 viewController 的应用程序午餐,但如果我将 viewController 设置为 rootviewController,我的导航控制器不会推送导航,反之亦然,如果将我的导航控制器设置为根,应用程序不会从菜单加载或主视图控制器。
【问题讨论】:
-
如何自定义导航栏?典型的解决方案包括使用
appearance自定义标准导航控制器的外观,到在UINavigationBar上放置一个类别并替换它的drawRect。你能解释一下你在定制中想要做什么吗?您通常不想继承UINavigationController(不是那是您所做的),但我不清楚您要做什么。建议会因您要达到的效果而异。 -
ViewController 的作用是什么?如果你将它用于临时的东西,比如登录或启动屏幕,我会从 PoemsViewController 模态地展示它。
标签: iphone objective-c ios xcode ipad