0

プログラムの下で次のコードを使用して画面の上に配置するカスタムタブバーを作成しようとしています。しかし、問題は、私は前の画面に戻るためにタブバーの上にナビゲーションバーを得ることができないということです。親切に私を助けてください。 Ios Swift:カスタムタブバーにナビゲーションバーを表示します。

override func viewDidLoad() 
{ 
    super.viewDidLoad() 

    let SrnBrdVar = UIStoryboard(name: "Main", bundle: nil) 
    let TabBarCtrVar = UITabBarController() 
    let TabBarVar = TabBarCtrVar.tabBar 
    let ObxSrnVar = SrnBrdVar.instantiateViewControllerWithIdentifier("ObxSrnUid") 
    let ObxNavSrnVar = UINavigationController(rootViewController: ObxSrnVar) 
    let IbxSrnVar = SrnBrdVar.instantiateViewControllerWithIdentifier("IbxSrnUid") 
    let IbxNavSrnVar = UINavigationController(rootViewController: IbxSrnVar) 

    UIApplication.sharedApplication().delegate!.window?!.rootViewController = TabBarCtrVar 

    ObxSrnVar.tabBarItem = UITabBarItem(
     title: "Outbox", 
     image: UIImage(named: "NamItmDftImj"), 
     selectedImage: UIImage(named: "NamItmSltImj")?.imageWithRenderingMode(.AlwaysOriginal)) 
    IbxSrnVar.tabBarItem = UITabBarItem(
     title: "Inbox", 
     image: UIImage(named: "NamItmDftImj"), 
     selectedImage: UIImage(named: "NamItmSltImj")?.imageWithRenderingMode(.AlwaysOriginal)) 

    TabBarCtrVar.viewControllers = [ObxSrnVar,IbxSrnVar] 

    TabBarVar.tintColor = UIColor.greenColor() 
    TabBarVar.frame = CGRectMake(
     0, 
     UIApplication.sharedApplication().statusBarFrame.size.height + 64, 
     UIScreen.mainScreen().bounds.width, 
     50) 
} 
+0

プログラムでTabBarコントローラを作成してから、ナビゲーションバーに追加しますか(プログラムでも同様)。 – nadi9

+0

親のカスタムタブバー(abv)ビューコントローラからナビゲーションバーを継承するには、すべてのChildviewコントローラ(受信ボックスと送信トレイ)が必要です。 –

答えて

1

これは私に役立ちました。うまくいけばそれはあなたのためにも役に立ちます。

let myStoryBoard = UIStoryboard(name: "Main", bundle: nil) 

    let myTabBarController = UITabBarController() 

    let leftController = myStoryBoard.instantiateViewControllerWithIdentifier("left") 

    let leftNavController = UINavigationController(rootViewController: leftController) 

    let rightController = myStoryBoard.instantiateViewControllerWithIdentifier("right") 

    let rightNavController = UINavigationController(rootViewController: rightController) 

    UIApplication.sharedApplication().delegate!.window?!.rootViewController = myTabBarController 

    myTabBarController.addChildViewController(leftNavController) 
    myTabBarController.addChildViewController(rightNavController) 



    let leftChild = myStoryBoard.instantiateViewControllerWithIdentifier("leftChild") 
    let rightChild = myStoryBoard.instantiateViewControllerWithIdentifier("rightChild") 


    leftNavController.addChildViewController(leftChild) 
    rightNavController.addChildViewController(rightChild) 

    print(myTabBarController.viewControllers?.count) 
    let but1 = myTabBarController.viewControllers?[0].tabBarItem 
    but1!.title = "Left Page" 
    let but2 = myTabBarController.viewControllers?[1].tabBarItem 
     but2!.title = "Right Page" 


    leftNavController.childViewControllers[0].navigationItem.title = "Left View" 
    rightNavController.childViewControllers[0].navigationItem.title = "Right View" 
0

以下のコードはナビゲーションバーを取得するのに役立ちました。しかし、私はボタンを追加して前の画面に移動することができません。 誰も私にこれを手伝ってもらえますか?

let SrnBrdVar = UIStoryboard(name: "Main", bundle: nil) 
    let TabBarCtrVar = UITabBarController() 
    let TabBarVar = TabBarCtrVar.tabBar 
    UIApplication.sharedApplication().delegate!.window?!.rootViewController = TabBarCtrVar 

    let Tab1SrnVar = SrnBrdVar.instantiateViewControllerWithIdentifier("Tab1SrnXid") 
    let Tab2SrnVar = SrnBrdVar.instantiateViewControllerWithIdentifier("Tab2SrnXid") 

    let Tab1NavCtrVar = UINavigationController(rootViewController: Tab1SrnVar) 
    let Tab2NavCtrVar = UINavigationController(rootViewController: Tab2SrnVar) 

    Tab1NavCtrVar.childViewControllers[0].navigationItem.title = "Nam1TabSrn" 
    Tab2NavCtrVar.childViewControllers[0].navigationItem.title = "Nam2TabSrn" 

    Tab1NavCtrVar.tabBarItem = UITabBarItem(
     title: "Nam1Tab", 
     image: UIImage(named: "NamItmDftImj"), 
     selectedImage: UIImage(named: "NamItmSltImj")?.imageWithRenderingMode(.AlwaysOriginal)) 
    Tab2NavCtrVar.tabBarItem = UITabBarItem(
     title: "Nam2Tab", 
     image: UIImage(named: "NamItmDftImj"), 
     selectedImage: UIImage(named: "NamItmSltImj")?.imageWithRenderingMode(.AlwaysOriginal)) 

    TabBarCtrVar.viewControllers = [Tab1NavCtrVar,Tab2NavCtrVar] 

    TabBarVar.tintColor = UIColor.greenColor() 
    TabBarVar.frame = CGRectMake(
     0, 
     UIApplication.sharedApplication().statusBarFrame.size.height + 40, 
     UIScreen.mainScreen().bounds.width, 
     50) 
関連する問題