私はビューとしてUIViewを初期化するView Controllerを持っています。そのビューは別のUIViewをサブビューとして初期化します。どちらのUIViewも、デリゲート/プロトコルを介してView Controllerと通信します。2つのView Controllerインスタンス間で値を共有する方法は?
それぞれのUIViewはのViewControllerのインスタンスを作成し、デリゲートにそれが等しいなる:
ViewController *aDelegate = [[ViewController alloc] init];
self.delegate = aDelegate;
問題:ビューコントローラ(INT)と呼ばれる変数を有する両方UIViewsによって修飾された選択。両方のビューは、お互いが変数をどのように変更したかを知っていなければなりませんが、それぞれがView Controllerの異なるインスタンスを持ち、通信が不可能であるためです。どうすればこの問題を解決できますか?
おかげトン
EDIT:ピーターは、私が好きなのビューの作成時にデリゲートを割り当てる述べたが、私はサブビューのためにそれはUIViewのではなくビューコントローラに作成されているためという方法を行うだろう。 PS。実際には、サブビューのサブビューのサブビューですので、View Controllerでそれらをすべて作成し、それをデリゲートとして割り当てることはできますか?
次のようにデリゲートを割り当てしようとしましたが、私はビューからのViewControllerメソッドを呼び出すしようとすると、それが継続的にクラッシュ:
MyView *mainView = [[MyView alloc] initWithFrame:frame];
self.view = mainView;
mainView.delegate = self;
[mainView release];
おそらく、この方法を逆にしたいことがあります。 1つのViewControllerと2つのUIViewがあります。 – joshpaul
それは私が持っている、サブビューを持つuiviewとビューコントローラです – John
可能な複製:http://stackoverflow.com/q/3185760/40175 – Akusete