【问题标题】:Storyboard and Switch Views?故事板和切换视图?
【发布时间】:2011-11-29 23:03:10
【问题描述】:

我有一个使用情节提要板功能的 iPad 应用程序,然后我有一个单独的 .xib 文件用于另一个视图。我可以切换到单独的视图和它的罚款:

-(IBAction)SecondView:(id)sender{

    SecondView *Second = [[SecondView alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:Second animated:NO];

}

但是当我在第二个视图中并尝试返回时,我只对第一个视图控制器执行相同的操作,但它只是进入黑屏:

-(IBAction)FirstView:(id)sender{

    FirstView *First = [[FirstView alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:First animated:NO];

}

你们怎么看?难道我做错了什么?切换视图的最佳方式是什么?

【问题讨论】:

    标签: iphone objective-c ios xcode xcode4


    【解决方案1】:

    initWithNibName:bundle 用于加载 nib 或 xib 文件。

    如果您从情节提要加载,则需要使用

        FirstView *First= [self.storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER"];
    

    IDENTIFIER 在您的故事板中定义,它位于右侧的实用程序、属性检查器中。

    但是你真正的问题是你根本不应该从情节提要加载。你应该只是打电话

    [self dismissModalViewControllerAnimated:YES];
    

    该调用将清除您最初用来放置模态视图控制器的presentModalViewController:animated:

    【讨论】:

    • 这将创建另一个 FirstView,而在视图控制器层次结构中已经有一个 FirstView。
    【解决方案2】:

    您使用presentModalViewController:animated: 提交了SecondView,因此您需要使用dismissModalViewControllerAnimated: 将其关闭。

    - (IBAction)FirstView:(id)sender
    {
        [self dismissModalViewControllerAnimated:YES];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-26
      • 2013-05-11
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多