我无法成功呈现UI视图并将Tab栏保持在Swift中。它确实显示成功,但是没有选项卡栏。这是我的代码。
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)
答案 0 :(得分:0)
您不能显示视图控制器并保留选项卡。如果要执行此操作,则只能推视图控制器。还有其他一些事情,但乍一看似乎已经在您的代码中正确实现了。
答案 1 :(得分:0)
您必须将视图控制器推入navigationViewController内。
但是,如果您没有MessagesController,则应该将其嵌入到UINavigationViewController中。 (在Main.storyboard内部,选择MessagesController,然后从菜单“编辑器”->“嵌入”->“导航控制器”中
然后:
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)