首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >presentModalViewController不工作

presentModalViewController不工作
EN

Stack Overflow用户
提问于 2012-12-17 15:12:41
回答 3查看 91关注 0票数 0
代码语言:javascript
复制
-(void)backAction:(id)sender
{ 
   SecondViewController *viewCtrl = [[SecondViewController alloc] init];

   [self.presentingViewController dismissModalViewControllerAnimated:NO];

   [self.presentingViewController presentModalViewController:viewCtrl animated:YES];
}

我想dismissModalViewControllerAnimated当前的控制器,然后呈现一个新的控制器。但它只有dismissModalViewControllerAnimated:NO

为什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-17 15:24:00

在这一行中,您已经忽略了视图控制器

代码语言:javascript
复制
[self.presentingViewController dismissModalViewControllerAnimated:NO];

然后,在下一行中,您将尝试使用已经关闭的视图控制器来预设模式视图。

代码语言:javascript
复制
[self.presentingViewController presentModalViewController:viewCtrl animated:YES];

相反,尝试使用这两个视图的父视图控制器(如果有)来呈现模式视图。您还可以在关闭第一个视图之后向父视图控制器发出通知,以便可以从父视图控制器启动第二个模式视图。

票数 0
EN

Stack Overflow用户

发布于 2012-12-17 15:39:10

在第一行中忽略自己之后,self.presentingViewController将为零。所以你所要做的就是直接引用控制器是什么,然后再删除它。在下面的示例中,呈现的视图控制器属于ViewController类。你将不得不使用任何类作为你的实际呈现视图控制器。

代码语言:javascript
复制
-(void)backAction:(id)sender {
     ViewController *presenter = (ViewController *)self.presentingViewController; 
     SecondViewController *viewCtrl = [[SecondViewController alloc] init];

     [presenter dismissModalViewControllerAnimated:NO];
     [presenter presentModalViewController:viewCtrl animated:YES];
}
票数 1
EN

Stack Overflow用户

发布于 2012-12-17 15:17:38

也许你可以试试这个:

代码语言:javascript
复制
[self.presentingViewController dismissViewControllerAnimated:NO completion:^{
    [self.presentingViewController presentModalViewController:viewCtrl animated:YES];
}]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13909806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档