谁能给我一个示例代码,我可以用它来首先呈现模式视图控制器,然后关闭它?这就是我一直在尝试的:
NSLog(@"%@", blue.modalViewController);
[blue presentModalViewController:red animated:YES];
NSLog(@"%@", blue.modalViewController);
[blue dismissModalViewControllerAnimated:YES];
NSLog(@"%@", blue.modalViewController);
此代码位于 viewDidLoad 中(“blue”和“red”都是 UIViewController 的子类)。我希望我会显示红色视图,然后立即隐藏它,并带有一些动画。然而,这段代码仅呈现模态视图,并没有关闭它。任何想法?第一个日志显示“null”,而其他两个日志显示<RedViewController: 0x3d21bf0>
另一点是,如果我将这段代码放在 applicationDidFinishLaunching 中:红色视图根本不会出现,并且所有日志都变为“null”
首先,当您将该代码放入 applicationDidFinishLaunching 中时,从 Interface Builder 实例化的控制器可能尚未链接到您的应用程序(因此“红色”和“蓝色”仍然是nil
).
但要回答你最初的问题,你做错的是你打电话dismissModalViewControllerAnimated:
在错误的控制器上!应该是这样的:
[blue presentModalViewController:red animated:YES];
[red dismissModalViewControllerAnimated:YES];
通常,“红色”控制器应该决定在某个时刻关闭自己(也许是在单击“取消”按钮时)。然后“红色”控制器可以调用该方法self
:
[self dismissModalViewControllerAnimated:YES];
如果它仍然不起作用,可能与控制器以动画方式呈现有关,因此您可能不被允许在呈现控制器后这么快关闭控制器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)