ios - 呈现和关闭模态视图 Controller

标签 ios objective-c uiviewcontroller modal-view

谁能给我示例代码,我可以使用它首先呈现一个模态视图 Controller ,然后将其关闭?这是我一直在尝试的:

NSLog(@"%@", blue.modalViewController);
[blue presentModalViewController:red animated:YES];
NSLog(@"%@", blue.modalViewController);
[blue dismissModalViewControllerAnimated:YES];
NSLog(@"%@", blue.modalViewController);

这段代码在 viewDidLoad 中(“blue”和“red”都是 UIViewController 的子类)。我希望我会显示红色 View ,然后立即隐藏它,并带有一些动画。然而,这段代码只显示模态视图,并没有关闭它。任何想法?第一个日志显示“null”,而另外两个日志显示 <RedViewController: 0x3d21bf0>

另外一点是,如果我把这段代码放在applicationDidFinishLaunching中:红色 View 根本没有出现,所有日志都得到“null”

最佳答案

首先,当您将该代码放入 applicationDidFinishLaunching 时,可能是从 Interface Builder 实例化的 Controller 尚未链接到您的应用程序(因此“红色”和“蓝色”仍然是 nil)。

但要回答你最初的问题,你做错的是你在错误的 Controller 上调用 dismissModalViewControllerAnimated: !应该是这样的:

[blue presentModalViewController:red animated:YES];
[red dismissModalViewControllerAnimated:YES];

通常,“红色” Controller 应该在某个时候决定关闭自己(可能在单击“取消”按钮时)。然后“红色” Controller 可以调用 self 上的方法:

[self dismissModalViewControllerAnimated:YES];

如果仍然无法正常工作,可能与 Controller 以动画方式呈现的事实有关,因此您可能不允许在呈现 Controller 后这么快就将其关闭。

关于ios - 呈现和关闭模态视图 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1529632/

相关文章:

ios - 如何将 SQL IN 运算符与 FMDB for iOS 一起使用

ios - URL 解码特殊字符 - äåö

ios - Unwind segue 不会释放我的 View Controller

ios - 将CALayer与位置一起移动,而不是与值之间移动?

android - 只进caffe的实现

objective-c - 电子阅读器式分页

ios - 从一天中的几个小时返回打开、关闭或关闭的功能

ios - UICollectionView 的清除标题和白色背景

ios - icarousel 不显示 ios7

c# - View 已添加到 UIViewControllerWrapperView,但显示不正确