私はUICollectionViewCellクラス "ProductCell"を持っています。私はbarbuttoniconを更新するために現在のナビゲーションコントローラにアクセスしようとしています。Swift:UICollectionViewCellから現在のナビゲーションコントローラにアクセス
let nav = self.navigationController as! MFNavigationController
nav.updateCartBadgeValue()
それはタイプProductCellの
値は何のメンバーnavigationController
Iを持っていないと述べているしかし:これは私が私の他のUIViewControllersに使用するものであるように私には、次のコードを試してみましたこれはUIViewController
ではないことを認識していますが、確かに同じ方法で現在のナビゲーションコントローラにアクセスできるはずですか?
私はまた、あなたが次のようにUIApplication
を使用してナビゲーションコントローラにアクセスできることを知っている:
let navigationController = application.windows[0].rootViewController as! UINavigationController
私はそれはしかし、それを行うための良い方法であるかどうかわからないです。
物事が変化しない限り、すべてのヘルプは非常に
おかげ
あなたは自分の質問にかなり答えました。それはかなりではありませんが、いつも働いています。 – Mozahler
コレクションビューとコレクションビューセルの背後にあるデザイン原則について考えてみましょう。セルは、通常、他の種類の状態またはアプリケーションロジックについて知る必要がない、無生物(データモデルの一部の静的な反射)です。 MVCパターン(私は思っていますが、それはかなりうまくいくと思います)では、コントローラ、つまりコレクションビューコントローラがそれを処理する必要があります。 – joeybladb
ビューからコントローラにアクセスする必要があるときは、間違ったことをしています。コントローラー(UICollectionViewのコントローラー)からセルを構成する方法を見直してください。 –