未来注意事项:您一次只能问一个问题。
对于问题 1 - 双导航栏。
在您的登录视图控制器中,您可以这样做:
class LogInViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// show the navigation bar
self.navigationController?.setNavigationBarHidden(false, animated: false)
}
@IBAction func loginTapped(_ sender: Any) {
// hide the navigation bar
self.navigationController?.setNavigationBarHidden(true, animated: false)
let storyboard = UIStoryboard(name: "HomePage", bundle: nil)
let secondVC = storyboard.instantiateViewController(identifier: "HomePageVC")
self.navigationController?.pushViewController(secondVC, animated: true)
}
}
问题 2 - 标签栏图标未显示。
在导航控制器中嵌入标签栏控制器通常被认为是不好的做法,因为导航可能会让用户感到困惑。但是,我不是 Apple,如果它符合您的设计并且导航仍然直观......
我只是试了一下,不,标签栏按钮图标(和标题)不显示。不完全确定为什么......但这是一种方法。
首先,删除所有当前的标签栏控制器连接。因此,您的“主页”故事板将只有一个标签栏控制器(故事板 ID 为“HomePageVC”)。
接下来,将UITabBarController 子类添加到您的项目中,并将其分配给“HomePageVC”标签栏控制器。它看起来像这样:
class MyTabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
var sb = UIStoryboard(name: "Settings", bundle: nil)
guard let tab1VC = sb.instantiateInitialViewController() else {
fatalError("Could not load Settings VC!")
}
guard let tab1Icon = UIImage(named: "settignsTabIcon") else {
fatalError("Could not load settignsTabIcon image!")
}
tab1VC.tabBarItem = UITabBarItem(title: "Settings", image: tab1Icon, selectedImage: tab1Icon)
sb = UIStoryboard(name: "Communication", bundle: nil)
guard let tab2VC = sb.instantiateInitialViewController() else {
fatalError("Could not load Communication VC!")
}
guard let tab2Icon = UIImage(named: "communicationTabIcon") else {
fatalError("Could not load communicationTabIcon image!")
}
tab2VC.tabBarItem = UITabBarItem(title: "Comunication", image: tab2Icon, selectedImage: tab2Icon)
// etc for your other 3 tabs
let viewControllerList = [ tab1VC, tab2VC ]
viewControllers = viewControllerList
}
}
至于问题 3 - 标签图标大小...您可以通过简单的搜索找到它...如果您不能找到,请返回并作为新帖子询问。