2016-05-18 6 views
1

と現在のナビゲーションコントローラを交換して私が使用することを試みた:は別ナビゲーションコントローラ

self.navigationController?.setViewControllers([anotherNavController], animated: true) 

しかし、私はNSExceptionを取得します。通常のビューコントローラでsetViewControllers()を使用するとうまくいきますので、UINavigationControllerを別のものに含めることはできません。

私が必要とするのは、現在のnavigationControllerを却下し、別のnavigationControllerを提示して、新しいnavigationControllerが終了したときに、将来、古いnavigationControllerが再び存在しないようにすることです。

私はPageMenuを使用しています。私は全体のナビゲーションコントローラを交換する必要がある理由の

例:

enter image description here

このコードはViewDidAppearでPageMenuを初期化します

// Initialize scroll menu 
    pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 0.0, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters) 

    self.addChildViewController(pageMenu!) 
    self.view.addSubview(pageMenu!.view) 

    pageMenu!.didMoveToParentViewController(self) 
+0

なぜあなたは_entire_'navigationController'を置き換えていますか?あなたは 'viewController'をその中で置き換えることができませんでしたか? – ZGski

+0

悲しいことに、私はhttps://github.com/HighBay/PageMenuを使用しており、それがそれ自身のナビゲーションコントローラに提示されていなければ正しく表示されません。 – thejuki

+0

投稿画像で判断すると、上部にパディングを追加するだけで、 'navigationController'を置き換える必要はありません。 – ZGski

答えて

1

あなたはストーリーボードなしであなたのPageMenuを設定する場合AppDelegateにrootViewControllerをインスタンス化する必要があります。これにより、デフォルトのnavigationControllerから自分のデフォルトに切り替える必要がなくなります。ストーリーボードなしPageMenuを設定する追加のヘルプについては

var window: UIWindow? 

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 

    self.window?.rootViewController = YourViewController(nibName: "YourViewController", bundle: nil) 

    self.window?.makeKeyAndVisible() 

    return true 
} 

、デモコードhereをチェックしてください。

+0

感謝。私はまだ私のコントローラのほとんどのためのストーリーボードを使用しているので、アプリケーション機能のコードは私には当てはまりません。しかし、私はまだナビゲーションコントローラにXIBファイルが必要なビューコントローラを作った。タブはまだ一番上にあるので、私はそれらを下に移動しました: pageMenu = CAPSPageMenu(viewControllerers:controllerArray、frame:CGRectMake(0.0、63.0、self.view.frame.width、self.view.frame.height - 80)、 pageMenuOptions:parameters) 結局、setViewControllerを使用することができましたが、まだ色付きの背景があります。 – thejuki

関連する問題