【问题标题】:How to set navigationcontroller push animation to "No" while using storyboard使用情节提要时如何将导航控制器推送动画设置为“否”
【发布时间】:2012-07-05 10:16:08
【问题描述】:

我正在将故事板用于基于导航的 iphone 应用程序。 我希望视图控制器使用“pushviewcontroller”属性进行导航,但同时我不希望它们动画。只是我想将他们的动画属性设置为“否”

如何使用情节提要做到这一点?

【问题讨论】:

    标签: iphone objective-c xcode uinavigationcontroller storyboard


    【解决方案1】:

    通过@azethoth 扩展答案,创建一个无动画segue 就像这样简单:

    @interface NoAnimationSegue : UIStoryboardSegue
    @end
    
    @implementation NoAnimationSegue    
    - (void)perform
    {
        [[self.sourceViewController navigationController] pushViewController:self.destinationViewController animated:NO];
    }    
    @end
    

    【讨论】:

      【解决方案2】:

      据我所知,没有办法以声明方式执行此操作。您可以手动调用

      [sourceController pushViewController:destination animated:NO];
      

      或者,如果您一心想要使用 segue,您可以创建自己的 UIStoryboardSegue 子类并实现 perform 方法来执行上述操作。然后在情节提要中,您可以使用自定义转场并输入转场子类的名称。

      【讨论】:

      • 请注意,自定义 segue 的行为类似于模态推送,而不是常规推送,这意味着您不会在情节提要中具有推断的模拟指标,并且由于它是“模态”,因此呈现的视图控制器视图将退出视图堆栈从而忘记透明度功能。
      猜你喜欢
      • 1970-01-01
      • 2016-01-01
      • 2012-05-23
      • 2014-09-17
      • 1970-01-01
      • 2013-10-21
      • 2015-08-21
      • 1970-01-01
      • 2013-09-04
      相关资源
      最近更新 更多