以编程方式返回选项卡栏控制器中的视图
Posted
技术标签:
【中文标题】以编程方式返回选项卡栏控制器中的视图【英文标题】:Returning to a view in a Tab Bar Controller Programatically 【发布时间】:2016-07-13 16:19:12 【问题描述】:我有一个 TabBarController,里面有 5 个 ViewController,在其中一个 ViewController 上,我有一组按钮,可以在 TabBarController 之外加载不同的视图控制器。这些是通过 Modal Segue 加载的,但是我遇到的问题是,当我尝试返回它加载的选项卡栏中的视图但没有选项卡栏本身时,我拥有的代码是:
class GreetingsVC: UIViewController
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
@IBAction func goBack(sender: AnyObject)
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("anonScreen") as! AnonVC
self.presentViewController(nextViewController, animated:true, completion:nil)
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
*/
我怎样才能让它在按下后退按钮时从标签栏控制器呈现视图控制器?
【问题讨论】:
尝试使用self.tabBarController.presentViewController(nextViewController, animated:true, completion:nil)
而不是self.presentViewController(nextViewController, animated:true, completion:nil)
不,仍然会加载底部没有标签栏的视图:(
【参考方案1】:
据我了解,在标签栏控制器中,您已经使用 presentViewController
呈现了 GreetingsVC,并且您想返回上一个视图(其中一个标签栏视图控制器)
你需要使用dismissViewControllerAnimated
而不是presentViewController
@IBAction func goBack(sender: AnyObject)
dismissViewControllerAnimated(true, completion: nil)
【讨论】:
刚刚尝试过,但仍然没有在关闭时显示标签栏:/ 感谢您的建议!欣赏它 从按钮到 GreetingsVC 你用什么?模态还是显示?我假设您正在使用故事板转场 GreetingsVC 是通过在 modal 上使用故事板 segue 访问的 我更新了我的代码,只保留goBack
函数中的那一行。如果还有问题,请告诉我
这就是我之前尝试过的,但没有成功。还是谢谢以上是关于以编程方式返回选项卡栏控制器中的视图的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式使用 Swift 3 在所有视图控制器中显示选项卡栏?