0

3 つのビュー コントローラー、初期化ボタンのある初期ビュー、ログイン ビュー コントローラー、およびリスト ビュー コントローラーを含むストーリーボードがあります。最初のView Controllerのinitボタンをクリックすると、ユーザーがログインビューまたはリストビューに切り替えるためにログインしたかどうかを確認したいと思います。セグエを使用してこれを実装するにはどうすればよいですか (セグエ条件??)

4

2 に答える 2

1

LOginViewControllerでこのようにユーザーがログインすると、ログイン値をユーザーのデフォルトに保存できます

-(void) doLogin
{
NSString * str = @"Loged In";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:str forKey:@"login"];
    [defaults synchronize];
}

そして、最初のView Controllerで、このNSdefault値がnilかどうかを確認します。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *userLogIn = [defaults objectForKey:@"login"];


    if (userLogIn.length !=0) {
        //then user Loged in
    }else
    {
       //then user not Loged in
    }

このコードは、必要に応じて変更できる単なる例です。

于 2013-03-29T10:50:02.247 に答える
1

あなたはこのようなことをすることができます

BOOL isLoggedIn = [[NSUserDefaults standardUserDefaults] boolForKey:@"isLoggedIn"];      
NSString *headingStoryboardID = isLoggedIn ? @"YourAlreadyLoggedInVC_ID" : @"YourLoginVC_ID";

if([headingStoryboardID isEqualToString:@"YourAlreadyLoggedInVC_ID"]) {
     AlreadyLoggedInClass *vc1 = (AlreadyLoggedInClass *)[self.storyboard instantiateViewControllerWithIdentifier:@"YourAlreadyLoggedInVC_ID"];
     [self presentViewController:vc2 animated:YES completion:nil];
} else {
     LoginViewController *vc2 = (LoginViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"YourLoginVC_ID"];
     [self presentViewController:vc2 animated:YES completion:nil];
}

OBS: 醜くてコンパイルされていないコードですが、コンセプトが伝わることを願っています。

EDIT DUE TO COMMENT 呼び出すプッシュセグエを実行するには

[self.navigationController pushViewController:vc1 animated:YES];

代わりは。

于 2013-03-29T11:18:39.903 に答える