为什么我的故事板没有加载?

时间:2018-05-15 03:30:52

标签: objective-c storyboard

我正在尝试使用特定登录任务的代码打开一个单独的故事板。

我创建了storyboard和实例类,如下所示

+ (instancetype)newStoryboardInstance {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:NSStringFromClass([self class]) bundle:[NSBundle bundleForClass:[self class]]];
    AdyenLoginViewController *viewController = [storyboard instantiateInitialViewController];

    return viewController;
}

然后我从另一个类中调用它

- (void) viewDidAppear:(BOOL)animated {
    if([NWTillHelper isDebug] == 1) {
        NSLog(@"%s entered", __PRETTY_FUNCTION__);
    }
    [AdyenLoginViewController newStoryboardInstance];
}

但是从不显示loginController并且没有显示错误消息,它只是完成加载我的普通故事板然后停止。

故事板名称等根据类名正确,并且不显示编译器错误或警告

如何让它加载我的特定故事板?

1 个答案:

答案 0 :(得分:1)

如果您使用的是导航控制器,则viewDidAppear将如下所示: -

- (void) viewDidAppear:(BOOL)animated {
    if([NWTillHelper isDebug] == 1) {
       NSLog(@"%s entered", __PRETTY_FUNCTION__);
    }
    if([AdyenLoginViewController newStoryboardInstance]) {
       [self.navigationContoller pushViewController:[AdyenLoginViewController newStoryboardInstance] animated:true];
    }

}

或者您可以像这样呈现viewController: -

- (void) viewDidAppear:(BOOL)animated {
    if([NWTillHelper isDebug] == 1) {
       NSLog(@"%s entered", __PRETTY_FUNCTION__);
    }
    if([AdyenLoginViewController newStoryboardInstance]) {
       [self presentViewController:[AdyenLoginViewController newStoryboardInstance] animated:true completion:^{

       }];
    }

}