从 xib 而不是主场景切换到情节提要中的场景

Posted

技术标签:

【中文标题】从 xib 而不是主场景切换到情节提要中的场景【英文标题】:Switch to a scene in storyboard from xib instead of main scene 【发布时间】:2013-11-04 12:16:27 【问题描述】:

我正在尝试实现一个包含主登录页面(在 Storyboard 中实现)的应用程序,它将用户引导到 UIWebView(在 xib 中实现)。登录成功后,我希望应用程序从 xib 返回到特定场景(由 Segue 连接),而是返回到主场景。

我从以下链接获得了帮助,但是我仍然遇到同样的问题: How to load a scene in a storyboard from a view controller 和 Add subview from a xib or another scene with storyboard

我的主视图控制器如下所示:

- (IBAction)loginButton:(id)sender



    oAuthLoginView = [[OAuthLoginView alloc] initWithNibName:nil bundle:nil];
    [oAuthLoginView retain];

    // register to be told when the login is finished
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(loginViewDidFinish:)
                                                 name:@"loginViewDidFinish"
                                               object:oAuthLoginView];

    [self presentModalViewController:oAuthLoginView animated:YES];


- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
   UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
    UINavigationController *navigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"check2"];
//    SecondViewController *viewController = navigationController.viewControllers[0];
//    
//    // setup "inner" view controller
//   // viewController. = bar;
//    
//    [self presentViewController:navigationController animated:YES completion:nil];




-(BOOL) loginViewDidFinish:(NSNotification*)notification


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

    return YES;


  // [self performSegueWithIdentifier:@"mainApp" sender:self];


    // UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    //  ProfileTabView * yourView = (ProfileTabView *)[storyboard instantiateViewControllerWithIdentifier:@"segueID"];
    //   [self.presentedViewController:yourView animated:YES completion:^];

    //[self switchToStoryBoard];

我尝试了很多不同的方法(在此处的代码中进行了注释),但它要么导致应用程序崩溃,要么返回主登录屏幕。

我错过了什么?

任何帮助表示赞赏:)

【问题讨论】:

【参考方案1】:
Check2 *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"check2"];
    [self.navigationController pushViewController:viewController animated:YES];

'Check2' 应该是您的视图控制器。 这就是我在我的应用中所做的。

【讨论】:

以上是关于从 xib 而不是主场景切换到情节提要中的场景的主要内容,如果未能解决你的问题,请参考以下文章

如何在情节提要场景中嵌入自定义视图 xib?

动态更改情节提要或情节提要上的场景

意外的 NSAutoresizingMaskLayoutConstraint 将 UIView 从笔尖添加到自动布局情节提要场景

在情节提要中向标签栏控制器场景添加按钮

如何编辑添加到情节提要中的场景停靠点的浮动视图?

使用 xib 而不是情节提要的 iOS 应用程序扩展