谁能给我示例代码,我可以使用它首先呈现一个模态视图 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/