ObjC プログラム フローを学習しました。これまでのところ、チェーンは main.m->UIApplicationMain->AppDelegate->ViewController で始まることがわかりました。
私が理解していない点は、ViewController 内のどのメソッドに AppDelegate クラスがフォーカスを移すかということです...
このトピックを理解することは非常に重要だと思いますので、明確化していただければ幸いです。
私はAppdelegate.mのこのコードを持っています -
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
MasterViewController *masterViewController = [[MasterViewController alloc] init];
self.navigationController = [[UINavigationController alloc] initWithRootViewController: masterViewController];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
ViewController内にはこれらのメソッドがあります-
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.navigationController setNavigationBarHidden:YES animated: NO];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear: animated];
}
および他の方法...
私の質問は
- AppDelegate が MasterViewController で制御を転送するメソッドはどれですか。また、MasterViewController がそのジョブを「終了」した後、または単にループされた後にコントロールが戻ってきますか?
- MasterViewController が初期化のために xib 名を取得する方法 (m ファイルと同じ名前ですか? つまり、どういう意味ですか - nibNameOrNil bundle:nibBundleOrNil)
- ナビゲーションコントローラーの関与が見られますが、ビューコントローラーにどのように接続されているかわかりません....
私の誤解を理解していただけましたら、ご説明いたしますので、今しばらくお待ちください。