1

ログアウトボタンからログイン(モーダルビューコントローラー)を表示し、ログインの下から設定(モーダルビューコントローラー)を自動的に閉じる方法を見つけようとしています。ストーリーボード レイアウトが表示される場合があります。

http://cl.ly/2B3h0T130S1K1026201N

このコードを SettingsViewController.m の logout メソッドに追加しようとしました

- (IBAction)logoutAccount {

      [self dismissModalViewControllerAnimated:YES];

      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
      UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
      [vc setModalPresentationStyle:UIModalPresentationFullScreen];

      [self presentModalViewController:vc animated:YES]; 

} 

問題は、クリックしてログアウトしたときにアプリが強制的にフリーズすることです。何が悪いのか誰か知っていますか?任意の提案をいただければ幸いです。

4

1 に答える 1

0

ユーザーが再度ログインした後、アプリをどこに配置しますか? 設定ボタンがあるビュー コントローラーにアプリを配置するとします (ストーリーボードからはそのように見えます)。

次に、その vc (ナビゲーション コントローラーのルート vc) はこれを実行できます。

- (void)viewDidAppear:(BOOL)animated {

    if (/*login is needed*/) {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
        [vc setModalPresentationStyle:UIModalPresentationFullScreen];

        [self presentModalViewController:vc animated:YES]; 
    } else {
        // normal view did appear logic
    }
}

ログアウトボタンでこれを実行できるようになりました:

- (IBAction)logoutButtonPressed:(id)sender {
    [self.navigationController popToRootViewControllerAnimated:NO];
}
于 2012-04-24T18:29:44.750 に答える