0

ログイン後にログイン画面があり、HomeViewController にプッシュしています。HomeViewController には、「SettingViewController」を提示しているボタン「Setting」があり、setingViewController にはログアウト用のボタンがあります。ユーザーがログアウトを押すと、LoginScreen で popToRootViewController.ie が表示されるはずですが、実行されていません。助言がありますか。これが私のコードです。

ログイン時

-(void)login_Success
{
HomeViewController *homeView = [[HomeViewController alloc]init];
[[self navigationController]pushViewController:homeView animated:YES];
}

ホームプレゼン設定画面で

- (IBAction)btn_setting_Click:(id)sender
{
SettingsViewController *settingsViewController = [[SettingsViewController alloc]init];
[self presentModalViewController:settingsViewController animated:YES];  
}

設定画面でログアウトを押した

- (IBAction)btnLogout_Click:(id)sender
 {
[appDelegate closeSession];
[self dismissModalViewControllerAnimated:NO];
 [[[self parentViewController]navigationController] popToRootViewControllerAnimated:YES];
 }

これは、ログアウトを押してもログイン画面にポップしません。助言がありますか。

4

3 に答える 3

4

まず AppDelegate で次のようにメソッドを定義します。

-(void)logoutNav
{
    [self.navigationController popToRootViewControllerAnimated:YES];
}

次に、SettingViewController で次のコードを試してください

- (IBAction)btnLogout_Click:(id)sender
 {
    [self dismissModalViewControllerAnimated:NO];
    [((AppDelegate *)[[UIApplication sharedApplication] delegate]) logoutNav];
 }
于 2013-03-09T06:05:46.077 に答える
0

間にView Controllerを提示しました。したがって、次のビューではポッピングは使用できません。rootViewController でさえありません。

ビューを閉じてから、前のビューにポップする必要があります

プログラミングを楽しもう!!

于 2013-03-09T05:41:52.243 に答える
0
- (IBAction)btnLogout_Click:(id)sender
{
   [appDelegate closeSession];
   [self dismissModalViewControllerAnimated:NO];
   [[self.view.window.homeView navigationController] popToRootViewControllerAnimated:YES];
}

よくわかりませんが、これを試してください

編集

デリゲートを使用して、このように実装してみてください

SettingViewController.h

@protocol SettingsViewControllerDelegate
    -(void)logOut;
@end
...
@property(nonatomic, assign) id<SettingsViewControllerDelegate> delegate;

SettingViewController.m

@synthesize @delegate;

- (IBAction)btnLogout_Click:(id)sender
{
    [appDelegate closeSession];
    [self dismissModalViewControllerAnimated:NO];
    [self.delegate logOut];
}

HomeViewController.h

#import "SettingViewController.h"
@interface HomeViewController : UIViewController <SettingsViewControllerDelegate>

HomeViewController.m

- (IBAction)btn_setting_Click:(id)sender
{
    SettingsViewController *settingsViewController = [[SettingsViewController alloc]init];
    settingsViewController.delegate = self
    [self presentModalViewController:settingsViewController animated:YES];  
}

-(void)logout
{
    [[self navigationController] popToRootViewControllerAnimated:YES];
}
于 2013-03-09T05:47:51.537 に答える