presentViewController 不存在

Posted

技术标签:

【中文标题】presentViewController 不存在【英文标题】:presentViewController doesn't present 【发布时间】:2013-10-11 12:21:08 【问题描述】:

我用故事板制作了一个单视图项目,添加了几个视图控制器。 初始视图控制器有一个简单的按钮来显示另一个视图控制器

- (IBAction)doPhotoAlbumBtn:(id)sender 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main.storyboard" 
                                                         bundle:nil];
    VCDecorations *ieVC = 
     [storyboard instantiateViewControllerWithIdentifier:@"VCDecorations"];
    [self presentViewController:ieVC animated:NO completion:nil];
 

我导入了类,将 ib 中的 biecontroller 连接到正确的类,在 viewcontroller 上具有正确的标识符并选中“使用故事板 ID”复选框 我觉得我错过了一些非常基本的东西。 帮帮我,伙计们。 谢谢。

【问题讨论】:

尝试 [self storyboard] 而不是 UIStoryboard。 您是否将Storyboard ID 值设置为复选框上方的VCDecorations? 您可以在使用情节提要时使用 segue。在这种情况下,请执行 segue,然后给它一个标识符,然后您可以使用 prepareforSegue 方法从一个控制器到第二个控制器进行 segue。 不,我不能使用 segues,因为我使用照片选择模式,然后呈现 viewcontroler。我无法做到。 【参考方案1】:

如果您只想切换到与当前UIViewController 相同的故事板中的UIViewController,您可以这样做:

UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ID"];
[self presentViewController:vc animated:NO completion:nil];

编辑

要传递数据,您可以使用completion:block 中的块,为您要传递的对象添加一个属性。该块在动画完成后执行。

【讨论】:

谢谢,它成功了。但是..这似乎不是正确的方法,我试图向前传递数据,但我不能(尝试更改呈现的 vc 的标签文本) 我确实回答了你的问题并且成功了,请检查它是否正确。

以上是关于presentViewController 不存在的主要内容,如果未能解决你的问题,请参考以下文章

PresentViewController:动画不显示在 iPad 上

容器视图中的presentViewController

self.presentingViewController presentViewController 不工作

导航控制器内的 UITableView 在关闭 presentViewController 后不滚动

presentViewController 不隐藏弹出框,弹出框出现在呈现的模态视图上

presentViewController 不显示标签栏或导航栏