#import <UIKit/UIKit.h>
#import "UCMapviewController.h"
#import "UCMenuviewController.h"
#import "UCOverviewController.h"
@interface UCRootViewController : UIViewController
@property (weak, nonatomic) UCMapviewController *mapviewController;
@property (weak, nonatomic) UCMenuviewController *menuviewController;
@property (weak, nonatomic) UCOverviewController *overviewController;
これは、これらのサブビューコントローラを管理するUCRootViewControllerの宣言です。彼は後に、1つのコントローラを表示するかどうかを決定する際に、その代理人になります。サブViewControllerの弱いまたは強いプロパティ
rootViewControllerはUIAppDelegateで強力に保持され、常にアクティブのままです。
サブビューコントローラーを弱くするのは正しいですか?私は100%確信していませんが、弱いポインタが指し示す強いポインタがないときに、弱いポインタが割り当て解除されることを理解する限り、ルートが強いほど、弱くするのは正しいですよね?
#import <UIKit/UIKit.h>
@class UCRootViewController;
@interface UCOverviewController : UIViewController
@property (weak, nonatomic) UCRootViewController *rootviewController;
これは私のサブビューコントローラの1つのヘッダーです。彼らは(後の)delegate rootviewControllerへの弱いポインタを持っています。代理メソッドを呼び出すように@class UCRootviewController
を宣言すれば十分ですか?私はこれも必要ですか?
おかげ
編集:私はちょうどa nice article about ViewControllersを読み、流路:
は、必ず[のUIViewController presentModalViewController:アニメーション:]高品質ビューコントローラコンテナや +を使用するアプリケーションでのView Controllerを表示します。参照コントローラ をどこかのビューコントローラに保持する必要がある場合は、 が実際にキャッシングの目的でもっと長く生かされることを望む場合を除き、弱い参照を使用してください。 の場合は、メモリ不足の状況にも正しく対応してください。
弱い参照を使用していますが、これについてあなたの意見は何ですか?
弱い参照を使用する場合は、自分自身のViewControllerに強力に使用するコンテナを使用します。私の答えで書いたように、たとえばナビゲーションコントローラを使用するときは、弱い参照を使用しても問題ありません。しかし、現在のVCのビューにサブビューとしてビューを追加したためにコントローラを保持したいときには、強力なポインタを使用する必要があります。そうしないと、それらは早期に割り当てが解除されます。 –
大丈夫ありがとうございます – MJB