2017-01-20 17 views
0

私はthisという驚異的なフレームワークを使用しており、ツールバーのボタンの更新が困難でした。私はNavigationDrawerControllerのサンプルコードに従った。 (今ツールバーのボタンを更新するには

// From AppToolbarController.swift 
fileprivate func prepareToolbar() { 
    toolbar.leftViews = [menuButton] 
    toolbar.rightViews = [switchControl, moreButton] 
} 

、私は別のViewController、Iからツールバーのボタンを変更するようナイーブ:だから最初は、ツールバーが左側にあるメニューボタン、右側にある2つの他のボタンが移入されます私は次のようにします:

// From RootViewController.swift 
fileprivate func prepareToolbar() { 
    guard let tc = toolbarController else { 
     return 
    } 

    tc.toolbar.rightViews = [someOtherButton] 
} 

ただし、これは効果がなく、ボタンは変更されません。このメソッドはtoolbar.rightViewsが以前に設定されていない場合にのみ機能します。

ツールバーのボタンを更新する適切な方法は何ですか?

答えて

1

viewDidLoad機能からアップデートToolbarprepareToolbar)機能を呼び出すことが問題だと思います。問題はRootViewControllerが実際にtoolbarControllerに接続されていないことになります。 prepareToolbar関数をビューコントローラのviewWillAppear関数に移動してみてください。これで問題が解決しない場合は、コード設定を表示できますか?ではごきげんよう!

コードサンプル:

class RootViewController: UIViewController { 
    fileprivate var remindersButton: IconButton! 

    open override func viewDidLoad() { 
     super.viewDidLoad() 
     view.backgroundColor = Color.white 
    } 

    open override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 
     prepareRemindersButton() 
     prepareToolbar() 
    } 
} 

extension RootViewController { 
    fileprivate func prepareRemindersButton() { 
     remindersButton = IconButton(image: Icon.cm.bell, tintColor: .white) 
     remindersButton.pulseColor = .white 
    } 

    fileprivate func prepareToolbar() { 
     guard let toolbar = toolbarController?.toolbar else { 
      return 
     } 

     toolbar.title = "Material" 
     toolbar.titleLabel.textColor = .white 
     toolbar.titleLabel.textAlignment = .left 

     toolbar.detail = "Build Beautiful Software" 
     toolbar.detailLabel.textColor = .white 
     toolbar.detailLabel.textAlignment = .left 

     toolbar.rightViews = [remindersButton] 
    } 
} 
+0

は素晴らしいサポート(フレームワーク)をいただき、ありがとうございます。私はできるだけ早くそれを試みます! – mbger

+0

それは喜びです:)すべて最高! – CosmicMind

関連する問題