如何将UIViewController显示为来自不同Storyboard的模态

时间:2015-02-14 10:17:19

标签: ios objective-c uiviewcontroller

我有一个图书馆项目和一个应用项目(使用图书馆项目)。

对于库的特定方法,它将检查系统中是否存在用户,然后弹出预先创建的表单以允许用户注册。但这不是直接的方式,因为它需要代表用户的应用程序显示此表单,因此在这种情况下是一个应用程序项目。

App项目有一个故事板(利用UINavigationController)。库项目还有一个故事板,其中包含独立的UIViewControllers即。注册表单等允许用户的应用程序通过库的方法调用以在运行时显示它们。

我捆绑了图书馆的故事板,我可以在app项目中成功访问它。下面的代码显示了我收到回复的时间,并试图显示注册表单不成功。

所以问题是如何在另一个Storyboard中正确显示UIViewController作为当前UIViewController(在本例中为UINavigationController)的模态。

    // check if user exists in the system or not
    [self player:playerId withBlock:^(PBPlayer_Response *player, NSURL *url, NSError *error) {
        // user doesn't exist
        if(player == nil && error != nil && error.code == 200)
        {
            NSLog(@"Player doesn't exist");

            dispatch_async(dispatch_get_main_queue(), ^{
                // get the bundle from the library
                NSBundle *pbBundle = [NSBundle bundleWithURL:[[NSBundle mainBundle]  URLForResource:@"pblibResource" withExtension:@"bundle"]];

                // get playbasis's storyboard
                UIStoryboard *pbStoryboard = [UIStoryboard storyboardWithName:@"PBStoryboard" bundle:pbBundle];

                // get regis ui-view-controller
                pbUserRegistrationFormViewController *regisForm = [pbStoryboard instantiateViewControllerWithIdentifier:@"registrationFormViewController"];

                // ----> show registration form - didn't show the form!
                [[[[UIApplication sharedApplication].keyWindow rootViewController] navigationController] presentViewController:regisForm animated:YES completion:nil];
            });
        }
        // player exists
        else if(player != nil && error == nil)
        {
            ...
        }
        // error
        else
        {
            ...
        }
    }];

0 个答案:

没有答案