以编程方式切换选项卡时清除根视图控制器的变量
clearing variables of root view controller when switching tabs programmatically
我有一个 storyboard/root viewcontroller 作为我应用程序的第三个选项卡。在该选项卡上,用户选择一个图像,并编写一个标题,这些标题存储为变量。从根 viewcontroller 开始,用户通过传递变量(即图像和文本)的 segue 进入预览屏幕。从此屏幕上,用户 post 成为 object。从 post 按钮,我弹出 viewcontroller,并以编程方式导航到我的应用程序的第一个选项卡。一切正常,但问题是当我导航回第三个选项卡时,存储的变量仍然存在,我希望将它们清除。
我看过很多关于保持变量的 post,但是 none 如何重置它们。我尝试使用 viewWillDissapear,但我不希望在使用 segue 时清除它们,因为我希望用户能够返回并在需要时进行一些更改。
更新了正确答案的代码
@IBAction func postButtonPressed(_ sender: Any) {
PostFunction.createPost(image: self.postImage, postText: self.hashtag) { (true) in
self.tabBarController?.selectedIndex = 0
let tab3 = self.tabBarController!.viewControllers![2] as! UINavigationController
let vc = tab3.viewControllers.first as! PostHomeVC
vc.clear()
self.navigationController?.popViewController(animated: false)
}
}
关于如何通过上述方法 "reset" rootviewcontroller 有什么建议吗?
谢谢!
I am popping the viewcontroller, and programatically navigating to the first tab of my app
在以编程方式切换到第一个选项卡之前,请执行
let tab3 = self.tabBarController.viewControllers[2] as! UINavigationController
let vc = tab3.viewControllers.first as! VCName
vc.clear()
或
let vc = self.navigationController!.viewControllers.first as! VCName
vc.clear()
并根据需要在 vc 中编写 clear
方法
我有一个 storyboard/root viewcontroller 作为我应用程序的第三个选项卡。在该选项卡上,用户选择一个图像,并编写一个标题,这些标题存储为变量。从根 viewcontroller 开始,用户通过传递变量(即图像和文本)的 segue 进入预览屏幕。从此屏幕上,用户 post 成为 object。从 post 按钮,我弹出 viewcontroller,并以编程方式导航到我的应用程序的第一个选项卡。一切正常,但问题是当我导航回第三个选项卡时,存储的变量仍然存在,我希望将它们清除。
我看过很多关于保持变量的 post,但是 none 如何重置它们。我尝试使用 viewWillDissapear,但我不希望在使用 segue 时清除它们,因为我希望用户能够返回并在需要时进行一些更改。
更新了正确答案的代码
@IBAction func postButtonPressed(_ sender: Any) {
PostFunction.createPost(image: self.postImage, postText: self.hashtag) { (true) in
self.tabBarController?.selectedIndex = 0
let tab3 = self.tabBarController!.viewControllers![2] as! UINavigationController
let vc = tab3.viewControllers.first as! PostHomeVC
vc.clear()
self.navigationController?.popViewController(animated: false)
}
}
关于如何通过上述方法 "reset" rootviewcontroller 有什么建议吗?
谢谢!
I am popping the viewcontroller, and programatically navigating to the first tab of my app
在以编程方式切换到第一个选项卡之前,请执行
let tab3 = self.tabBarController.viewControllers[2] as! UINavigationController
let vc = tab3.viewControllers.first as! VCName
vc.clear()
或
let vc = self.navigationController!.viewControllers.first as! VCName
vc.clear()
并根据需要在 vc 中编写 clear
方法