【问题标题】:is there any way to popView controller in Storyboard?有什么办法可以在 Storyboard 中弹出视图控制器?
【发布时间】:2013-08-07 07:47:27
【问题描述】:

我在 storyboard 中有一个应用程序,并通过故事板本身的推送操作(不使用编码)连接到second view controller

有什么方法可以在不编写任何代码和使用情节提要的情况下弹出到first view controller

注意:通过使用navigation controller,我们将拥有back 按钮,但是如果在第二个视图控制器中创建了一个按钮,并且当我们点击该按钮时,我们应该弹出到第一个视图控制器。

【问题讨论】:

    标签: ios uinavigationcontroller storyboard


    【解决方案1】:

    故事板不提供无需编码即可从转场返回的方法,但这可以通过以下代码轻松完成:

    [self.navigationController popToRootViewControllerAnimated:YES];
    

    【讨论】:

      【解决方案2】:

      Storyboards没有提供popViewController的“无代码”方式,需要自己实现。

      如果你想弹出到你需要使用的第一个 viewController:

      [self.navigationController popToRootViewControllerAnimated:YES];
      

      【讨论】:

        【解决方案3】:

        从 iOS6 开始,您也可以使用 UnwindSegue,尽管它确实需要一些代码)* 用于推送序列。有关UnwindSegues 的详细解释,请参阅SO post, scroll down to "In a Nutshell"

        )*具体来说,你需要一个放松动作,例如

        - (IBAction)unwindToThisViewController:(UIStoryboardSegue *)unwindSegue
        

        【讨论】:

          【解决方案4】:

          涉及编写一次代码但之后可以在情节提要中用作 segue 而无需进一步实现的解决方案是某种 PopSegue 作为 UIStoryboardSegue 的子类。

          @interface PopSegue : UIStoryboardSegue
          

          如下覆盖 -perform 方法。

          @implementation PopSegue
          
          - (void)perform
          {
              [[self.sourceViewController navigationController] popViewControllerAnimated:YES];
          }
          
          @end
          

          使用自定义 segue 进行反向导航并指定 PopSegue 类。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-07-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多