gpt4 book ai didi

ios - 从添加屏幕发送时 popToRootViewController 不工作

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:14 26 4
gpt4 key购买 nike

我正在构建一个简单的应用程序。带有 TableView 和嵌入式导航 Controller 的 1 View Controller 中的项目列表。当您选择一行时,它会将您带到详细信息屏幕(没问题)。

从 ListView 推送到列表项

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "ListItemDetailsVC", sender: nil)
}

从列表项弹出回到 ListView

@IBAction func backToInboxTapped(_ sender: Any) {
navigationController?.popToRootViewController(animated: true)
}

这很好用!

我的问题是我有另一个 View Controller (添加项),它在单击添加按钮时以模态方式显示。这个想法是,当它保存时,它会将您带到列表详细信息 vc。

@IBAction func saveItem(_ sender: Any) {
performSegue(withIdentifier: "DetailsFromAdd", sender: nil)
}

从添加新 Controller 打开详细信息 View Controller 工作正常,但一旦我打开详细信息 View ,我希望能够返回到 rootViewController。该按钮不再起作用

enter image description here

最佳答案

在您的情况下,您不需要使用 segue。你必须弄清楚一些概念。

如果你已经从 modally presented vc 推送或显示 View Controller ,你不能 popToRootViewControllerVC!!

现在,如果你想实现这一点,那么你必须做出一些我在下面要提到的改变:

在您的add item VC 中获取一个全局变量或属性(objective c 概念)。现在,当你从 lust VC 开始 add item VC 时,将这个全局变量或属性设置为 self 之类的,

   AddListItemVC *advc = [self.storyboard instantiateViewControllerWithIdentifier:@"addListItem"];  // addListItem is storyboard id for viewcontroller




[self presentViewController:advc animated:NO completion:^{


advc.vc = self; // here vc is the propery of type `UIVIewController` declare in AddListItemVC

}];

现在你从 add list VC 转到 details VC 的代码应该是这样的,

    DetailListViewController *dvc = [self.storyboard instantiateViewControllerWithIdentifier:@"detailViewScreen"];   // detailViewScreen is storyboard id which you can set from identity inspector



[self dismissViewControllerAnimated:NO completion:^{


[self.vc.navigationController pushViewController:dvc animated:YES]; // here self.vc is global variable or property that contains reference of first VC (i.e. list view controller)


}];

在这种情况下不需要使用performsegue。您可以使用 performsegue 直接从 firstvc 进入 detailvc 我的意思是从 list vc

希望您能理解概念,由于时间有限,我已经编写了 objective-c 代码段!!希望您可以轻松转换为 swift!!

关于ios - 从添加屏幕发送时 popToRootViewController 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40485144/

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