【问题标题】:How to present UI view and keep Tab bar in Swift如何在 Swift 中呈现 UI 视图并保留 Tab 栏
【发布时间】:2019-01-29 13:16:22
【问题描述】:

我无法成功呈现 UI 视图并在 Swift 中保留 Tab 栏。它确实成功呈现,但没有标签栏。似乎呈现 UIView 会删除标签栏。这是我的代码。

navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(goMessages))

这是我使用的。

class MessagesController: UITableViewController {
    let cellId = "cellId"
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(goMessages))
        
        let image = UIImage(named: "new_message_icon")
        navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(handleNewMessage))
        
        checkIfUserIsLoggedIn()
        
        tableView.register(UserCell.self, forCellReuseIdentifier: cellId)
        
        //        observeMessages()
    }

    @objc func goMessages() {
        let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let Messages = storyBoard.instantiateViewController(withIdentifier: "Messages") as! MainMSGController
        self.present(Messages, animated:true, completion:nil)

【问题讨论】:

  • 最简单的方法是在另一个控制器之前使用UITabbarController
  • 我对编码很陌生,但我目前正在使用“class MessagesController: UITableViewController {”我将如何改变这个?
  • youtube.com/watch?v=NzoUzrAh0V8 基本上是这样的。当你想添加tableview或collectionview时,只需在tabbar和其他2个视图之间添加NavigationController

标签: ios swift uitabbar


【解决方案1】:

您必须将视图控制器推送到您的 navigationViewController 中。

但是,如果您没有,您应该将 MessagesController 嵌入 UINavigationViewController 中。 (在 Main.storyboard 中,选择 MessagesController,然后从菜单 Editor -> Embed in -> Navigation Controller)

然后:

let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let Messages = storyBoard.instantiateViewController(withIdentifier: "Messages") as! MainMSGController
navigationController?.pushViewController(viewController: Messages, animated: true)

要关闭它,您可以:

navigationController?.popViewController(animated: true)

【讨论】:

    【解决方案2】:

    您不能呈现视图控制器并保留标签。如果你想这样做,你只能推动视图控制器。还需要其他一些东西,但乍一看,它们似乎在您的代码中正确实现。

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 2014-08-11
      • 1970-01-01
      相关资源
      最近更新 更多