iphone navigationКонтроллер с автозагрузкой на три уровня - PullRequest
0 голосов
/ 02 марта 2010

я создаю имя проекта NavigationController: автозагрузка, затем создайте два uiviewContorller с именем: second, three

я хочу, чтобы процесс был загружен rootView загрузите секунду в методе: "viewDidLoad", затем автоматически загрузите три в методе "viewdidload", вот код:

rootView:

- (void)viewDidLoad {
    self.title = @"first";
    Second *second = [[Second alloc] init];
    AutoLoadAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
    [delegate.navigationController pushViewController:second animated:YES];
    [super viewDidLoad];
}

второй:

- (void)viewDidLoad {
    self.title = @"second";
    [super viewDidLoad];
}

Теперь соберите и запустите программу, я могу автоматически загрузить в секунду очень правильно включая заголовок и навигационную кнопку

тогда я хочу aotoload три в секунду, поэтому добавьте код во второй метод: "viewdidload"

второй:

- (void)viewDidLoad {
    self.title = @"second";
    **Three *three = [[Three alloc] init];
    AutoLoadAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
    [delegate.navigationController pushViewController:three animated:YES];**
    [super viewDidLoad];
} 

В конце добавьте название к трем:

три:

- (void)viewDidLoad {
    self.title = @"three";
    [super viewDidLoad];
}

тогда собери и иди, найдешь, что контент правильный "три" но название неправильное "второе", оно должно быть "три" и вы также найдете неправильную кнопку навигации

что не так с моим тем, что я должен сделать, чтобы реализовать программу автозагрузки до трех?

Примечание:

я попробую это: если я добавлю кнопку в секунду и переместить код

Three *three = [[Three alloc] init];
    AutoLoadAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
    [delegate.navigationController pushViewController:three animated:YES];

к ibaction, это будет работать правильно, но я хочу, чтобы он загружался автоматически

1 Ответ

2 голосов
/ 02 марта 2010

Вместо вызова pushViewController в методах viewDidLoad попробуйте установить массив viewControllers в методе applicationDidFinishLaunching:

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    RootViewController *root = [[RootViewController alloc] init];
    root.title = @"root";
    Second *second = [[Second alloc] init];
    second.title = @"second";
    Three *three = [[Three alloc] init];
    three.title = @"three";
    [navigationController setViewControllers:[NSArray arrayWithObjects:root,second,three,nil] animated:YES];
    [root release];
    [second release];
    [three release];

    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...