【问题标题】:IOS: open and close some view controllersIOS:打开和关闭一些视图控制器
【发布时间】:2012-02-20 08:02:41
【问题描述】:

在我的应用中,我有以下配置来打开我的视图控制器:

当我写 "pushViewController" 我使用导航控制器,当我写 "present" 我使用presentModalViewController

firtsView -> (pushviewcontroller) -> secondOneView -> (present) -> thirdOneView -> (present) -> fourthView

firstView -> (pushviewcontroller) -> secondTwoView -> (present) -> thirdTwoView 

这是我的应用程序组织视图控制器的方案。那么我的问题是:

“fourthView”(即我从“fourthView”返回的时候)返回到“secondTwoView”的方法是什么?

有办法吗?

【问题讨论】:

    标签: ios xcode uiviewcontroller uinavigationcontroller presentmodalviewcontroller


    【解决方案1】:

    是的。

    UIViewController 提供了不同的方法来关闭视图控制器,具体取决于您是否以模态方式呈现它。这些是:

    -(void)dismissModalViewControllerAnimated:(BOOL)animated; // modal
    -(void)dismissViewControllerAnimated:(BOOL)flag
                              completion:(void (^)(void))completion;
    

    您需要一一解除它们。 另外,花点时间阅读 Apple 的View Programming Guide

    使用UINavigationController,您可以使用以下方式弹出到任何视图控制器:

    -(NSArray *)popToViewController:(UIViewController *)viewController
                           animated:(BOOL)animated;
    

    另外,另一种方法让你只弹出一个:

    -(UIViewController *)popViewControllerAnimated:(BOOL)animated;
    

    【讨论】:

      【解决方案2】:

      如果你使用 presentViewController

      我认为你必须一个一个地关闭 viewController

      但如果你只是导航控制器,那么你可以弹出到你想要的视图控制器

      【讨论】:

        【解决方案3】:
        1. 在thirdOneView的viewcontroller中,做dismissModalViewControllerAnimated:NO
        2. 在 secondOneView 的视图控制器中再次执行 dismissModalViewControllerAnimated:NO。
        3. 在 secondOneView 的 viewcontroller 中执行 popViewControllerAnimated:NO
        4. 在 firstView 的 Viewcontroller 中执行 pushViewController 到 secondTwoView

        如果你想要一些动画。我建议使用 CoreAnimation 手动完成。自从

        -(void)dismissViewControllerAnimated:(BOOL)flag
                              completion:(void (^)(void))completion;
        

        仅在 iOS5 之后可用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-06-11
          • 2012-05-19
          • 2020-04-25
          • 1970-01-01
          • 2017-11-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多