关于iOS中navigationcontroller的使用问题

给项目添加一个navigationcontroller,但是发现在navigationBar和自己写的布局中间会有大约20像素的空隙,现在用的是ios sdk6 xode4.5
以前用sdk5.0 xcode4.2的时候不会有这样的现象的
这是怎么回事呢

没加的时候屏幕快照-2012-10-31-下午2.07.57.png

加了以后屏幕快照-2012-10-31-下午2.08.51.png

加了以后隐藏屏幕快照-2012-10-31-下午2.08.29.png

代码如下
还有这个是初始页面,通过跳转回到这个页面的时候却没问题了

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[RootViewController alloc]
initWithNibName:@"RootViewController" bundle:nil];

self.window.rootViewController = self.viewController;
self.navigationController=[[UINavigationController
alloc]initWithRootViewController:self.viewController];
[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];

return YES;
}
阅读 6.3k
1 个回答

因为你的view初始化时写的 initWithFrame:CGRectMake(0,20,320,xxx),这个frame是相对屏幕的
现在加了navigation bar之后,frame是相对于navigation bar的,应该改为

initWithFrame:CGRectMake(0,0,320,xxx)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题