我最近才开始为iOS/iPhone
. 我以为我知道自己在做什么,直到XCode5/iOS7
出现。UIViewController
以前,我创建了一个从a派生的类XIB
,添加了一个标签,并以编程方式将其添加到rootWindow:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
... // boilerplate code
MyViewController* myRoot = [[MyViewController alloc]init];
self.window.rootViewController = myRoot;
为了使用导航栏,我稍微更改了代码:
MyViewController* myRoot = [[MyViewController alloc]init];
UINavigationController* navigationController = [[UINavigationController alloc]init];
[navigationController pushViewController:myRoot animated:YES];
self.window.rootViewController = navigationController;
这似乎工作正常。但是,在iOS 7
我的自定义视图控制器顶部的控件上似乎位于导航栏的后面。一些谷歌搜索导致这个链接描述了状态栏的变化。
它似乎也表明,A)UINavigationController
应该自动处理更改 B)“自动布局”应该自动处理更改,
我不应该担心。但是,我上面的示例应用程序似乎没有自动处理任何事情。
我还发现了其他一些以不同方式使用控制器的示例代码:将导航控制器的视图添加为subView
现有视图。这种在应用程序生命周期的后期添加导航控制器是有意义的,但我试图在启动时设置一个。
我使用UINavigationController
正确吗?
iOS7
与早期版本相比,我需要考虑什么?
如何配置“自动布局”(我在任何地方的界面构建器中都看不到这个)?