#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 つのコントローラーを表示するかどうかを処理するデリゲートにもなります。
rootViewController は UIAppDelegate で強力に保持され、常にアクティブなままになります。
では、これらのサブビューコントローラーを弱くするのは正しいですか? 100%確かではありませんが、私が理解している限りでは、それらを指している強いポインターがない場合、弱いポインターの割り当てが解除されます。根が強いから弱くするのが正解でしょ?
#import <UIKit/UIKit.h>
@class UCRootViewController;
@interface UCOverviewController : UIViewController
@property (weak, nonatomic) UCRootViewController *rootviewController;
これは、私のサブビューコントローラーの 1 つのヘッダーです。それらには、(後の) デリゲート rootviewController への弱いポインターがあります。@class UCRootviewController
デリゲート メソッドを呼び出すように宣言するだけで十分ですか? これも必要ですか?
ありがとう
編集: ViewControllersとその一節に関する素晴らしい記事を読みました:
アプリケーションでビュー コントローラーを表示するには、高品質のビュー コントローラー コンテナーまたは +[UIViewController presentModalViewController:animated:] を常に使用してください。ビュー コントローラーへの参照をどこかに保持する必要がある場合は、弱い参照を使用してください。このような場合は、メモリ不足の状態に正しく対応するようにしてください。
弱い参照を使用すると書かれていますが、これについてどう思いますか?