私はアプリを開発していて、歌う/サインアウトするプロセスがあります。ユーザーがサインアウトボタンをクリックすると、ユーザーをホーム画面に移動させます。これを行うために、アプリデリゲートで次のメソッドを作成しました。
- (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];
そして、それは1つのことを除いて正常に動作します。UINavigationBarは本来よりも小さいです!これがどのように見えるかのスクリーンショットです:
UINavigationBarで埋める必要のある小さな黒い線があります...
なぜこれが起こっているのか考えていますか?
=======================================編集========== =============================
1つのコメントで行うように指示されたように、新しいWindowsの作成を削除しましたDavid M.
が、それでも失敗します。
[self.navController popToRootViewControllerAnimated:NO];
WelcomViewController *welcomeViewController = [[WelcomViewController alloc]init];
self.navController = [[UINavigationController alloc] initWithRootViewController:welcomeViewController];
[self.window setRootViewController:navController];