2016-10-10 10 views
0

ナビゲーションバーのV1のボタンをクリックできるようにするアプリケーションを作成します。これにより、V2のナビゲーションバーにある別のボタンを押すことができるV2にセグメントし、そのボタンをV1に戻して、タブバーコントローラーを下にします。私はV2のタブバーを望んでいないし、V2をタブバー項目としては望んでいない。私がこれを試してみると、V2からV1に戻るときにタブバーが消えてしまいます。Tab Bar Controllerが別のビューに戻るときに消えます

タブバーコントローラ - > TABバー項目(V1) - > V2(V1上のナビゲーションバーボタンアイテム経由) - >バックV1に私は[self.navigationController, popViewControllerAnimated:YES];を追加した

(V2上のナビゲーションバーボタンアイテム経由)私のボタン機能ですが、コンテナリテラルではエラーが予想される表現が出てきます。

このコード以外に、私のアプリにはまだ他のコードがありません。

私が最初にアプリの起動時にタブバーコントローラを表示したい場合は、これらのコードを入れてAppDelegate

var navController: UINavigationController? 
var tabController: MyTabController? 

にプロパティを追加し、UITabBarControllerのサブクラスを作成するのXcode 8.0とスウィフト3.0

+0

あなたはスウィフト3.0を使用しているが、あなたが追加した機能がobj-Cである言及? –

答えて

0

私は答えを把握しようとする日後に私の問題を解決しました。これを任意のView Controllerに追加する必要があります。

@IBAction func unwindToViewController (sender: UIStoryboardSegue){ 

    } 

次に、バーボタン項目のセグをビューコントローラの終了アイコンに追加できます。

You can view an image of the VC scene here.

0

を使用しています

self.window = UIWindow(frame: UIScreen.main.bounds) 
let myStoryboard = UIStoryboard(name: "Main", bundle: nil) as UIStoryboard 
self.tabController = myStoryboard.instantiateViewController(withIdentifier: "MyTabController") as? MyTabController 
//self.navController = UINavigationController(rootViewController: self.tabController!) 
//self.window?.rootViewController = self.navController 
self.window?.rootViewController = self.tabController 
self.window?.makeKeyAndVisible() 
return true 

ログインまたはSOM後にタブバー上でジャンプしたい場合はdidFinishLaunchingWithOptionsAppDelegateその後、他のething、viewDidLoad

appDelegate = UIApplication.shared.delegate as? AppDelegate 

にそのコントローラ

var appDelegate: AppDelegate! 

にプロパティを追加し、この方法は、お使いのタブ項目のビューコントローラで次に

func logIntoApp() { 

    appDelegate.tabController = self.storyboard?.instantiateViewController(withIdentifier: "MyTabController") as? MyTabController 
    appDelegate.window?.rootViewController = appDelegate.tabController 
} 

が好きAppDelegateのプロパティを作成して割り当てる必要があります上記のような委任。シンプルなタブバーを使用しないのはなぜ

@IBAction func showWithTab(_sender: AnyObject) { 

     let DefaultVC = self.storyboard?.instantiateViewController(withIdentifier: "DefaultViewController") as! DefaultViewController 
     self.navigationController?.pushViewController(DefaultVC, animated: true) 
} 

@IBAction func showWithoutTab(_sender: AnyObject) { 

     let DefaultVC = self.storyboard?.instantiateViewController(withIdentifier: "DefaultViewController") as! DefaultViewController 

    // You can create your own animation 
     UIView.transition(from: (appDelegate.tabController?.view)!, to: (appDelegate.navController?.view)!, duration: 0.3, options: UIViewAnimationOptions.curveEaseIn) { (finished) in 

     self.appDelegate.window?.rootViewController = self.appDelegate.navController 
    } 

    // OR you can use like this way 
     UIView.transition(from: self.view, to: DefaultVC.view, duration: 0.3, options: UIViewAnimationOptions.curveEaseIn) { (finished) in 

     self.appDelegate.window?.rootViewController = self.appDelegate.navController 
    } 
} 
0

とメソッドは次のようにすべきですか?このような 何か:

enter image description here

とVC1には:

override func viewWillDisappear(_ animated: Bool) { 
    super.viewWillDisappear(animated) 

    myTab.removeFromSuperview() 
} 
+0

タブバーでビューに戻ると、タブバーが消えてしまいました。 –

+0

@D。Murphy私の編集を見てください – Rob

+0

ナビゲーションコントローラーを使ってセグを設定し、VC2のセグをナビゲートコントローラーのプッシュセグを使ってVC1に戻したとき、VC2のナビゲーションバーに追加したバーボタン項目が消えました。申し訳ありませんが、私の質問が理にかなっていないが、私がしたいことは、2つのVCをタブバーにリンクさせることです。次にVCの1つでは、ナビゲーションバーにバーボタンアイテムを配置して、タブバーが実装されていない別のVCにセグメントさせます。このVCには、ナビゲーションバーに別のバーボタン項目があり、これを使用して、タブバーでVCに戻ることができます。ありがとう。 –

関連する問題