gpt4 book ai didi

iOS 在模态和导航 uiviewcontroller 中回到根 ViewController

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:40:59 24 4
gpt4 key购买 nike

我有一个关于导航的结构,许多页面在 uiviewcontroller(UINavigationController) 上有模态(弹出)。

当我断开蓝牙连接时,我需要将 View Controller 返回到根目录。

所以我在disconnect方法中设置了dismiss和popToRoot

 -(void) disconnect
{
....
[appDelegate.window.rootViewController dismissViewControllerAnimated:NO completion:nil];

NSLog(@"appDelegate.window.rootViewController:%@",appDelegate.window.rootViewController.class);
// show log appDelegate.window.rootViewController:UINavigationController

[appDelegate.window.rootViewController.navigationController popToRootViewControllerAnimated:YES];
....
}

但是当我运行程序并断开蓝牙时,

在案例 1 中:模态视图 Controller 显示,

它将关闭模态视图 Controller ,关闭是正确的。

但是在dismiss modal viewcontroller后并没有回到root navigation controller。

案例2:就在uinavigation controller页面。

当我断开蓝牙时,没有回到根导航 Controller 。

如何返回导航根页面?我的失败在哪里?

非常感谢。

//------ 回答 ------

将代码更改为

  [appDelegate.window.rootViewController dismissViewControllerAnimated:NO completion:nil];

[self performSelector:@selector(gotoRoot) withObject:nil afterDelay:0.50];

- (void) gotoRoot {

UINavigationController *myNavCon = (UINavigationController*)appDelegate.window.rootViewController;

[myNavCon popToRootViewControllerAnimated:YES];
}

最佳答案

从您展示模态视图的类中调用模态视图的关闭,然后在延迟一段时间后执行选择器,然后执行这里是示例代码

- (void) dismissAndGoToRoot {
[self dismissViewControllerAnimated:YES completion:nil];
[self performSelector:@selector(gotoRoot) withObject:nil afterDelay:0.50];
}

- (void)gotoRoot {

[self.navigationController popToRootViewControllerAnimated:NO];
}

关于iOS 在模态和导航 uiviewcontroller 中回到根 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29763952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com