2

我正在开发一个应用程序,我有一个登录/注销过程。当用户单击退出按钮时,我希望将用户带到主屏幕。为此,我在应用程序委托中创建了以下方法:

- (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 比它应该的要小!这是它的外观截图:

在此处输入图像描述

UINavigationBar 应该填充一条小黑线...

知道为什么会这样吗?

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

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

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

3 回答 3

1

我试图找出错误..但没有发现..所以,我建议您尝试手动设置导航栏..

于 2013-03-19T06:37:39.013 回答
0

禁止创建新窗口:“要更改应用显示的内容,您可以更改窗口的根视图;不要创建新窗口。” UIKit 不打算以这种方式工作。

于 2013-03-18T16:35:42.230 回答
0

遵循json建议,这是我在viewDidLoadUINavigationBar 问题的视图控制器中所做的:

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

我希望它有帮助!

于 2013-03-22T12:22:41.343 回答