2017-07-05 7 views
0
override func viewWillAppear(_ animated: Bool) { 
    if (self.parent?.isKind(of: GuideViewController.self))!{ 

     relatedGuide1.setBackgroundImage(#imageLiteral(resourceName: "ab-logo-rebrand"), for: .normal) 
    } 
} 

これをviewDidLoadにも書き込もうとしました。葉巻はありません。私はこのトップメソッドは、基本的には中だどの親に応じて、異なるビューコントローラを示し、このContainerViewControllerクラスでUIButtonの新しい背景イメージをプログラムで設定する親ビューで表示するには

@IBAction func relatedGuidePressed(_ sender: Any) { 
    if (self.parent?.isKind(of: GuideViewController.self))!{ 
    show(guideViewController, sender: nil) 

    } 

} 

を行うことができていますので、それは奇妙である。基本的に私がいる7つのビューと同じレイアウトを持つコントローラのすべてが、異なるデータを持っている参考のために表示されます。だから、私はContainerViewがこれについての最良の方法だと考えました。すべてが盛り上がりましたが、これはパズルの最後の部分です。理想的には、jsはボタンの条件文の束よりも効率的な何かを行うことができますが、これは私が今までに思いついたベストです。

注意:ContainerViewにUIButtonを挿入します。私はUIButtonがどのParentViewにあるかによって視覚的にも機能的にも変えたいと思っています。

もし誰かが助けてくれたら、ブレス

+0

あなたはクラス全体を投稿できますか? – murphguy

答えて

0

だから私は答えを見つけた。ビューの階層とコールバックはいつ呼び出されるのですか(私の説明では間違っているかもしれないからです)。ただし、viewDidAppear NOT viewWillAppearメソッドでコードを実装する必要があります。ここでは次のようになります:

override func viewDidAppear(_ animated: Bool) { 



    if (self.parent?.isKind(of: IDController.self))!{ 

    UpNextButton.backgroundColor = UIColor.init(hex: "536BA1") 
    nextUpButtonImage.image = #imageLiteral(resourceName: "logo") 


     //BUTTONS 
     relatedGuideButton1.backgroundColor = UIColor.init(hex: "400080") //purple 
     relatedGuideButton1.setImage(#imageLiteral(resourceName: "onenote-logo"), for: .normal) 
     relatedGuideButton1.setTitle("TAKE NOTES", for: .normal) } 

ボタンとともにいくつかの機能が必要な場合は、少し簡単です。他のIBActionと同じ条件を使用して実装してください。このように:

@IBAction func relatedGuideButton1Pressed(_ sender: Any) { 

    if (self.parent?.isKind(of: IDController.self))!{ 

     show(notesController, sender: nil) 
    } 

    else if (self.parent?.isKind(of: DriveController.self))! || 
      (self.parent?.isKind(of: ShareController.self))! || 
      (self.parent?.isKind(of: NoteController.self))! || 
      (self.parent?.isKind(of: AppsController.self))! || 
      (self.parent?.isKind(of: SymbolsController.self))! || 
      (self.parent?.isKind(of: MonthController.self))! { 

      show(guideViewController, sender: nil) 

    } 

} 

乾杯!

関連する問題