Iphone 使用多个ModalViewController

Iphone 使用多个ModalViewController,iphone,modalviewcontroller,presentmodalviewcontroller,Iphone,Modalviewcontroller,Presentmodalviewcontroller,正在启动新线程。。。关于同样的问题。。我已经尝试了所有我从不同的帖子和论坛得到的。。。没有人为我工作 我想做的是 [self presentModalViewController:ViewControllerA animated:YES];//Working fine //Inside viewControllerA call viewControllerB [self presentModalViewController:ViewControllerB animated:YES];//Work

正在启动新线程。。。关于同样的问题。。我已经尝试了所有我从不同的帖子和论坛得到的。。。没有人为我工作

我想做的是

[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

我试过了

  • 在显示ViewControllerB//之前关闭viewControllerA,后者直接进入view C
  • 正在解除viewControllerB//中的viewControllerA//无结果。 //DismissViewController应关闭所有堆栈。。但不为我工作所以我试了
  • 在viewControllerB/中取消两个viewcontroller//仍然显示viewcontrollera
  • 天哪……这太令人困惑了。

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

    你可能会有这样的运气:

    [viewControllerA dismissModalViewController:NO];
    [viewController dismissModalViewController:NO];
    
    我不知道你说的“在”或“在”是什么意思;你“上”什么课并不重要。但通常,视图控制器负责其子对象。通常,父对象将自己设置为子对象的委托。当孩子“完成”时,它会向家长发送一条消息;父母有责任解雇孩子。UIKit的预打包视图控制器(UIImagePickerController/MFMailComposeViewController/MFMessageComposeViewController)都遵循此模式。

    您的代码不清楚(您使用了两次
    self
    ,而它们可能涉及不同的内容)。我假设你想要做的是(有效地)这样:

    你可能会有这样的运气:

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

    我不知道你说的“在”或“在”是什么意思;你“上”什么课并不重要。但通常,视图控制器负责其子对象。通常,父对象将自己设置为子对象的委托。当孩子“完成”时,它会向家长发送一条消息;父母有责任解雇孩子。UIKit的预打包视图控制器(UIImagePickerController/MFMailComposeViewController/MFMessageComposeViewController)都遵循此模式。

    以下是我所做的。。这不是一个好的解决方案,但目前还有效:)

    ///ViewDidLoad [自我呈现ModalViewController:ViewControllerA动画:是]//工作正常

    //内部视图控制器A [自我解散Modalviewcontrolleranimated:否]

    //视图将出现 [自我呈现ModalViewController:ViewControllerB动画:是]//工作正常

    //内部视图控制器B
    [自我解散Modalviewcontrolleranimated:否]

    以下是我所做的。。这不是一个好的解决方案,但目前还有效:)

    ///ViewDidLoad [自我呈现ModalViewController:ViewControllerA动画:是]//工作正常

    //内部视图控制器A [自我解散Modalviewcontrolleranimated:否]

    //视图将出现 [自我呈现ModalViewController:ViewControllerB动画:是]//工作正常

    //内部视图控制器B
    [自我解散Modalviewcontrolleranimated:否]

    如果我使用viewController而不是self来显示ModalViewController。。。它不是呈现视图。。。以下是我如何创建viewControllerA。。。。。ViewControllerA*ViewControllerA=[[[ViewControllerA alloc]init]autorelease];我使用viewController来指代您正在使用的“根”视图控制器。“自我”本身毫无意义。叹气。当你说使用viewController而不是self。。。如果必须从当前视图控制器显示视图。。。那么我应该用self-right?嘿,这不完全是一个解决方案。。但是在介绍B之前,我会打电话给你。。。谢谢你的帮助。。我会投票支持你。你说的“当前”是什么意思?显示的那个,还是执行方法的接收者?“self”是后者。如果我使用viewController而不是self来表示modalviewcontroller。。。它不是呈现视图。。。以下是我如何创建viewControllerA。。。。。ViewControllerA*ViewControllerA=[[[ViewControllerA alloc]init]autorelease];我使用viewController来指代您正在使用的“根”视图控制器。“自我”本身毫无意义。叹气。当你说使用viewController而不是self。。。如果必须从当前视图控制器显示视图。。。那么我应该用self-right?嘿,这不完全是一个解决方案。。但是在介绍B之前,我会打电话给你。。。谢谢你的帮助。。我会投票支持你。你说的“当前”是什么意思?显示的那个,还是执行方法的接收者?“自我”是后者。