1

TouchID を少しいじってみましたが、次の質問があります。

TouchID ログインに成功した後、新しい ViewController を提示するにはどうすればよいですか?

viewController.m のコードは次のとおりです。

#import "ViewController.h"
@import LocalAuthentication;
#import "SVProgressHUD.h"
@interface ViewController ()

@end

@implementation ViewController



- (void)viewDidLoad {
    [super viewDidLoad];

        LAContext *context = [[LAContext alloc] init];
        NSError *error;

        // check if the policy can be evaluated
        if (![context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error])
        {
            NSLog(@"error:%@", error);
            NSString *msg = [NSString stringWithFormat:@"Can't evaluate policy! %@", error.localizedDescription];
            [SVProgressHUD showErrorWithStatus:msg];
            return;
        }

        // evaluate
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                localizedReason:@"Please login through TouchID"
                          reply:
         ^(BOOL success, NSError *authenticationError) {

             dispatch_async(dispatch_get_main_queue(), ^{

                 if (success) {
                     [SVProgressHUD showSuccessWithStatus:@"Everything Worked!"];
                     //Code for new viewController should come here!
                 }
                 else {
                     NSLog(@"error:%@", authenticationError);
                     [SVProgressHUD showErrorWithStatus:[NSString stringWithFormat:@"FAILED! %@", authenticationError.localizedDescription]];
                 }
             });
         }];
    }


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

viewController.h は標準です。何も変わっていません。サポートをありがとう:)

4

1 に答える 1

1

View Controllerを表示するには、通常、次のメソッドを使用します

  1. ストーリーボードを使用している場合は、次のメソッドを呼び出します

    [self performSegueWithIdentifier:@"indentifierForViewController" sender:self];

    1. ストーリーボードを使用していない場合は、使用できます

    NextTaskViewControler *add = [[NextTaskViewControler alloc] initWithNibName:@"NextTaskViewController" bundle:nil]; [self presentViewController:nextTaskVC animated:YES completion:nil];

UINavigationController を使用することをお勧めします。これは、他のビュー コントローラーを管理してユーザーに階層的なナビゲーションを提供する特殊なビュー コントローラーです。アクションの少ない写真を表示するなど、特定の目的にのみビュー コントローラーを表示します。ビューの階層が複雑になった場合でも簡単に維持できます。

UINavigationController リファレンスを参照してください

于 2014-10-29T18:05:44.897 に答える