Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios dimiss两个已加载的视图控制器,具有按钮操作_Ios_Objective C - Fatal编程技术网

Ios dimiss两个已加载的视图控制器,具有按钮操作

Ios dimiss两个已加载的视图控制器,具有按钮操作,ios,objective-c,Ios,Objective C,在这种情况下,两个视图控制器加载到初始视图控制器的顶部,当加载第三个视图控制器时,我希望由于第三个视图控制器上的按钮的操作而取消两个视图控制器。现在,该按钮仅禁用一个视图控制器,代码如下: - (IBAction)logout:(id)sender { [serial close]; if([self.view isKindOfClass:[ViewControllerCreate class]] ) { [self dismissModalViewControllerAnima

在这种情况下,两个视图控制器加载到初始视图控制器的顶部,当加载第三个视图控制器时,我希望由于第三个视图控制器上的按钮的操作而取消两个视图控制器。现在,该按钮仅禁用一个视图控制器,代码如下:

- (IBAction)logout:(id)sender {

[serial close];

if([self.view isKindOfClass:[ViewControllerCreate class]] ) {


    [self dismissModalViewControllerAnimated:YES];

}

[self dismissModalViewControllerAnimated:YES];
}

我不需要每次都关闭两个视图控制器,就在这种特殊情况出现时


为了清楚起见,在第一视图控制器中有一个按钮,按下该按钮时显示第二视图控制器,然后在加载第二视图控制器时,有一个按钮在按下时呈现第三视图控制器。

你应该考虑使用<代码> DeSwitsVIEW控制器动画:完成:,这将允许你链接多个解锁。取消第一个,通过完成检查取消第二个的必要要求,等等。

我现在使用以下代码获得了所需的行为

- (IBAction)logout:(id)sender {

    [serial close];

    if([self.presentingViewController isKindOfClass:[ViewControllerCreate class]] ) {

        [self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES];
    }
    [self dismissModalViewControllerAnimated:YES];

}

我很确定你的情况永远不会受到影响
self.view
将成为一个子类
UIView
,我猜
ViewControllerCreate
是一个子类
UIViewController
吗?是的,先生,ViewControllerCreate是UIViewController的一个子类。对,因此条件中的表达式永远不会计算为
yes
,因此
-dismissModalViewControllerAnimated:
只被调用一次。但是,如果不检查,我甚至不知道一个模态视图控制器是否可以呈现另一个模态视图控制器。这就是我呈现视图控制器所做的,我使用模态转换。我确信这不是正确的方法,但我就是这样做的:/第一个视图控制器是同时显示第二个和第三个视图控制器,还是第一个视图控制器显示第二个视图控制器,然后第二个视图控制器显示第三个视图控制器?