【问题标题】:ios 6 prepareForSegue leads to a black screenios 6 prepareForSegue 导致黑屏
【发布时间】:2012-11-08 10:01:35
【问题描述】:

我在使用情节提要时遇到问题。

我通过 push segue(其标识符为 pic2profile)将按钮(在自定义 uiviewcell 内)正确连接到场景 (ProfileVC)。 除了在管理单元格的表格视图控制器(HomeVC)中,我实现了方法prepareForSegue:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    if([segue.identifier isEqualToString:@"pic2profile"]){
        ProfileVC *profile = (ProfileVC *)segue.destinationViewController;
        NSLog(@"%@", [segue identifier]);
        Tweet *tweet = [tweets objectAtIndex:0];
        profile.user = tweet.user;  
    }
}

如文档中所述,一旦在prepareForSegue 末尾调用segue.destinationViewController,应该在segue 末尾显示视图控制器(在本例中为ProfileVC)。 发生的情况是我得到(没有错误!)黑屏,尽管对象“配置文件”不为空,但未调用 ProfileVC 中的方法 viewDidLoad。

在情节提要中,ProfileVC 场景链接到其视图控制器 (ProfileVC),并且还设置了情节提要 ID。

我已经尝试过this,但没有成功。

【问题讨论】:

  • 您当前的视图控制器是否由导航控制器管理? (尝试在prepareForSegue: 中记录self.navigationController 以确保。)
  • 是的。故事板中的 HomeVC 嵌入在导航控制器中。事实上,当我点击连接到 ProfileVC 的按钮时,我得到一个黑屏,顶部有一个导航栏(我可以返回 HomeVC)。
  • 场景与viewController“链接”是什么意思?

标签: ios6 storyboard segue uistoryboardsegue


【解决方案1】:

您是否正在使用现有代码对视图控制器执行转场,但中间有导航控制器?如果是这样,您必须使用不同的方式,在两者之间指定导航控制器。

如果您不需要导航控制器,您可以将其删除并将单元格连接到视图控制器并保留您拥有的代码。否则你必须改变它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2023-03-19
    相关资源
    最近更新 更多