【问题标题】:Using multiple ModalViewController使用多个 ModalViewController
【发布时间】:2010-09-26 17:15:56
【问题描述】:

开始一个新线程......关于同样的问题......我已经尝试了我从不同帖子和论坛中获得的所有内容......对我来说没有任何工作......

我想做的是……

[self presentModalViewController:ViewControllerA animated:YES];//Working fine
//Inside viewControllerA call viewControllerB
[self presentModalViewController:ViewControllerB animated:YES];//Working fine
//Dismiss both the Controllers. and present View

C

我试过了。

  1. 在呈现 ViewControllerB 之前关闭 viewControllerA // 直接进入视图 C
  2. 在 viewControllerB 中关闭 viewControllerA // 没有结果。 //DismissViewController 应该关闭所有堆栈.. 但对我不起作用,所以我尝试了
  3. 在 viewControllerB 中关闭两个 viewContrller //仍然显示 viewContrllerA

天啊...令人困惑..

【问题讨论】:

    标签: iphone modalviewcontroller presentmodalviewcontroller


    【解决方案1】:

    您的代码不清楚(您使用 self 两次,它们可能指的是不同的东西)。我假设你想要做的是(有效地)这个:

    [viewController presentModalViewController:viewControllerA animated:YES];
    // time passes...
    [viewControllerA presentModalViewController:viewControllerB animated:YES];
    // time passes
    ... do something to dismiss both controllers ...
    

    你可能会遇到这样的事情:

    [viewControllerA dismissModalViewController:NO];
    [viewController dismissModalViewController:NO];
    

    我不知道你所说的“in”或“inside”是什么意思;你“在”哪个班级并不重要。但通常,视图控制器负责其子级。通常,父母将自己设置为孩子的代表。当孩子“完成”时,它会向父母发送一条消息;父母有责任解雇孩子。 UIKit 的预打包视图控制器(UIImagePickerController/MFMailComposeViewController/MFMessageComposeViewController)都遵循这种模式。

    【讨论】:

    • 如果我使用 viewController 而不是 self 来呈现ModalViewController...它不呈现视图...这是我创建 viewControllerA 的方式..... ViewControllerA *viewControllerA = [[[ViewControllerA alloc] init ] 自动释放];
    • 我正在使用 viewController 来引用您正在使用的任何“根”视图控制器。 “自我”本身毫无意义。叹息。
    • 当您说使用 viewController 而不是 self...如果我必须从当前视图控制器呈现视图...那么我应该使用 self 对吗??
    • 嘿,它的工作原理并不完全是一个解决方案......但是......我在展示 B 之前调用了 Dismiss viewControllerA......谢谢你的帮助......我会投票给你。
    • 你所说的“当前”是什么意思——正在显示的那个,或者你正在执行的方法的接收者? “自我”是后者。
    【解决方案2】:

    这是我所做的.. 不是一个好的解决方案,但现在可以使用.. :)

    ///ViewDidLoad [self presentModalViewController:ViewControllerA animated:YES];//工作正常

    //在 ViewController A 中 [selfdismissModalViewControllerAnimated:NO];

    //ViewWillAppear [self presentModalViewController:ViewControllerB animated:YES];//工作正常

    //在ViewController B里面 [selfdismissModalViewControllerAnimated:NO];

    【讨论】:

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