She*_*lam 38 iphone cocoa-touch objective-c uiviewcontroller uikit
我有2个视图控制器以模态方式呈现.
A presents B which presents C.
Run Code Online (Sandbox Code Playgroud)
当我解雇CI时也想解雇B. 但我不知道该怎么做:
解雇C:
[self dismissModalViewControllerAnimated:YES]
//[delegate dismissB] //this doesn't work either when i create a delegate pattern
Run Code Online (Sandbox Code Playgroud)
现在我离开了B.如何从C中解雇B?
And*_*ies 109
刚刚发现你需要在iOS 5中使用presentViewController.
[self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
A - > B - > C.
在模态C中运行上面的代码将带您回到A.
n13*_*n13 14
这对我有用,非常简单
// Call inside View controller C
self.presentingViewController?.dismissViewControllerAnimated(false, completion: nil)
self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
说明:
如果你在C上调用dismiss,它只能删除C.如果你在B上调用dismiss,它会做正确的事:删除最顶层的模态视图控制器.因此,第一个调用将删除C(没有动画).第二次调用删除B.
从C访问视图控制器B的最简单方法是使用presentsViewController变量.
小智 12
在B. Put:
[self dismissModalViewControllerAnimated:NO];
[self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
只运行一个动画.
尝试使用B中的下一个代码(在解雇C之后,就像你已经做的那样):
[self.parentViewController dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
重要提示:
此行之后的方法中不要执行任何操作.
这个视图控制器(B)可能会被释放并解除分配......
更新:
从iOS7开始,不推荐使用上述方法.
请改用下一个方法:
[self.parentViewController dismissViewControllerAnimated:YES completion:^{ /* do something when the animation is completed */ }];
Run Code Online (Sandbox Code Playgroud)
检查这是否为swift:
self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil);
Run Code Online (Sandbox Code Playgroud)
迅速4
self.presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil);
| 归档时间: |
|
| 查看次数: |
21712 次 |
| 最近记录: |