![](/img/trans.png)
[英]Present UINavigationController from UITabBarController tab root view
[英]Present View within UITabBarController & UINavigationController Programmatically
我們正在開發一個具有RootVC的iOS應用,該應用中以編程方式放置了4個TAB,每個Tab都有一個單獨的ViewController
。 負責搜索的選項卡之一。 當用戶點擊此特定ViewController
上的搜索按鈕時,我們想在另一個ViewController
顯示搜索結果,該ViewController
的底部是TabBar
,頂部是帶有“ Back”按鈕的NavigationController
。 我該如何實現? 我嘗試使用self.navigationController?.present
,push,但沒有一個起作用。
RootVC.swift:
class RootVC: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
setupTabBarLayout()
}
private func setupTabBarLayout() {
// 1. Profile page
let profileVC = ProfileVC()
let profileVCBarItem = UITabBarItem(title: "Profil", image: UIImage(named: "profile_icon"), tag: 1)
profileVC.tabBarItem = profileVCBarItem
// 2. Search
let searchVC = SearchVC()
let searchVCBarItem = UITabBarItem(title: "Search", image: UIImage(named: "search_icon"), tag: 2)
searchVC.navigationItem.leftBarButtonItem = nil
searchVC.tabBarItem = searchVCBarItem
// 3. Meet
let meetVC = MeetVC()
let meetVC = SearchResultsVC()
let meetVCBarItem = UITabBarItem(title: "Meet", image: UIImage(named: "meet_icon"), tag: 3)
meetVC.tabBarItem = meetVCBarItem
// 4. Activities
let activitiesVC = ActivitiesVC()
let activitiesVCBarITem = UITabBarItem(title: "Activities", image: UIImage(named: "activities_icon"), tag: 4)
activitiesVC.tabBarItem = activitiesVCBarITem
// VC Setup
viewControllers = [profileVC, searchVC, meetVC, activitiesVC]
// Design settings
self.tabBar.backgroundColor = .lightButtonBg
self.tabBar.barTintColor = .darkMagenta
self.tabBar.tintColor = .customWhite
self.tabBar.unselectedItemTintColor = .lightButtonBg
self.tabBar.isTranslucent = false
}
嘗試這個
var vc = storyboard?.instantiateViewController(withIdentifier: "identifierForStoryboard
navigationController?.pushViewController(vc, animated: true)
然后觀察是否存在諸如視圖不在層次結構之類的錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.