UINavigationBar比它必须要小

时间:2013-03-18 16:11:03

标签: ios objective-c uinavigationbar

我正在开发一款应用,我有一个唱歌/退出流程。当用户点击注销按钮时,我希望用户进入主屏幕。为此,我在app delegate中创建了以下方法:

- (void) restartAppWhenLogOut{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    WelcomViewController *welcomeViewController = [[WelcomViewController alloc]init];
    self.navController = [[UINavigationController alloc] initWithRootViewController:welcomeViewController];
    [self.window setRootViewController:navController];
    [self.window makeKeyAndVisible];
}

当用户点击“退出”按钮时,我称之为:

[[UIApplication sharedApplication].delegate restartAppWhenLogOut];

除了一件事,它工作得很好。 UINavigationBar比它应该小!以下是它的外观截图:

enter image description here

有一条小黑线应由UINavigationBar填充......

知道为什么会这样吗?

=======================================编辑======= ================================

我删除了新的窗口创建,因为David M.告诉我在一条评论中做,但它仍然失败:

[self.navController popToRootViewControllerAnimated:NO];
WelcomViewController *welcomeViewController = [[WelcomViewController alloc]init];
self.navController = [[UINavigationController alloc] initWithRootViewController:welcomeViewController];
[self.window setRootViewController:navController];

3 个答案:

答案 0 :(得分:1)

我试图找出错误..但是没找到..所以,我建议你尝试手动设置导航栏..

答案 1 :(得分:0)

答案 2 :(得分:0)

遵循json建议这是我在视图控制器的viewDidLoad中使用UINavigationBar问题所做的:

[self.navigationController.navigationBar setFrame:CGRectMake(0, 20, 320, 44)];

我希望它有所帮助!