iPhone: pushViewController не работает после замены RootViewController - PullRequest
0 голосов
/ 22 января 2012

Я хочу разместить экран перед моим текущим RootViewController. До сих пор я сделал следующую модификацию MyAppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //with this in the existing RootViewController loads correctly
    //self.window.rootViewController = self.navigationController; 
    self.window.rootViewController = [[[HomePageController alloc] init] autorelease];  
}

Я не совсем уверен, как self.navigationController фактически устанавливается для моего RootViewController. В любом случае, если я сделаю модификацию, мой HomePageController загрузится правильно, но тогда я не смогу выдвинуть другой вид поверх него. У меня есть простая кнопка на HomePageController, которая выполняет следующее (обратите внимание, что HomePageController должна загрузить текущее имя RootViewController, HomePageController - это представление, которое я хочу расположить над этим):

RootViewController *rvC = [[[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]] autorelease];

[self.navigationController pushViewController:rvC animated:YES]; 

Когда этот код запускается, ничего не происходит ... Я не совсем уверен, почему, возможно, что-то связанное с навигационным контроллером? Может быть, я не поставил HomePageController выше RootViewController правильно или наилучшим образом?

1 Ответ

4 голосов
/ 22 января 2012

В данный момент у вас нет navgiationController. Чтобы исправить, вы должны заменить

self.window.rootViewController = [[[HomePageController alloc] init] autorelease];  

с

self.window.rootViewController = [[[UINavigatoinController alloc] initWithRootViewController:[[[HomePageController alloc] init] autorelease]] autorelease];

теперь у вас есть навигационный контроллер и установлен

[self.navigationController pushViewController:rvC animated:YES];

сделает правильную работу.

...