ios – iPad:presentModalViewController创建一个屏幕堆栈.操纵这个堆栈(从卡片中间滑出卡片?)

前端之家收集整理的这篇文章主要介绍了ios – iPad:presentModalViewController创建一个屏幕堆栈.操纵这个堆栈(从卡片中间滑出卡片?)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@
@H_301_0@
iPad:presentModalViewController创建一个屏幕堆栈.你可以操纵这个堆栈(从卡片中间滑出卡片吗?)

[self presentModalViewController:navigationController1 animated:NO];
[self presentModalViewController:navigationController2 animated:NO];
[self presentModalViewController:navigationController3 animated:NO];

上面的代码创建了一堆3深的屏幕. “navigationController3”是可见的,如果使用“[self dismissModalViewController]”将其解除,则可以看到navigationController2.

虽然THREE是可见的,但我希望将两个滑出堆叠/甲板的中间,这样当三个被解雇时,ONE将会被看到.

解决方法

根据Apple doc here,堆栈是一种双链表.它看起来像这样:

self.modalViewcontroller                  --> navigationController1   
navigationController1.modalViewController --> navigationController2          
navigationController2.modalViewController --> navigationController3

navigationController1.parentViewcontroller--> self   
    navigationController2.parentViewcontroller--> navigationController1          
    navigationController3.parentViewcontroller--> navigationController2

问题是你不能搞砸这些属性,因为它们是只读的.
我看到的唯一解决方案是在关闭navigationcontroller3时解除navigationController2.
例如,在navigationController3类中尝试:

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.parentviewcontroller.    //navigationController2
             parentviewcontroller.    //navigationController1
                dismissModalViewControllerAnimated:NO];
}
@H_301_0@

猜你在找的iOS相关文章