толкая ноль rootViewController на цель <UINavigationController - PullRequest
0 голосов
/ 22 октября 2011

Я занимался этим весь день, но ничего не нашел о rootViewController в связи с этим сообщением об ошибке. Я знаю, в чем проблема, но не знаю, как ее исправить. Моя проблема в том, что мой window.rootViewController не подключен или показывает ноль, и я не могу понять, что делать. Я перепробовал все, что мог придумать в коде и в IB, но плохие вещи случаются, когда я что-то меняю. Это сообщение, которое я получаю: «Приложение пыталось выдвинуть ноль контроллера представления на целевой UINavigationController»

Я могу увидеть window.rootViewController из оператора NSLog: "window.rootViewController: (null)"

конечно, все работало отлично до обновления моего Xcode до 4.2 и ios5. :)

Кстати - вид загружается, но я не могу работать ни с одной из кнопок, они вообще не загораются. И моя навигация тоже работает нормально.

вот мое приложение Delegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

[DDLog addLogger:[DDTTYLogger sharedInstance]];
NSLog(@"Viewcontroller : %@", self.viewController);

// Set the view controller as the window's root view controller and display.
//self.window.rootViewController = self.viewController;
//do it this way, previous version not supported in ios5 - may need to check version for compatibility
[self.window addSubview:self.viewController.view];

//set up navigation controller
NSLog(@"window.rootViewController : %@", self.window.rootViewController);
navigationController = [[UINavigationController alloc]
                        initWithRootViewController:self.window.rootViewController];
navigationController.navigationBarHidden = YES;

NSLog(@"navigationController : %@", navigationController);
[window addSubview:navigationController.view];
[window makeKeyAndVisible];

//force this view to be landscape
[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];
[self.navigationController.view setTransform: CGAffineTransformMakeRotation(M_PI / 2)];
[self.navigationController.view setFrame:CGRectMake(0, 0, 748, 1024)];
[UIView commitAnimations];  


return YES;

}

Спасибо.

1 Ответ

0 голосов
/ 22 октября 2011

По документам:

Обсуждение Корневой контроллер представления обеспечивает представление содержимого окна. Назначение контроллера представления этому свойству (программно или с помощью Interface Builder) устанавливает представление контроллера представления в качестве представления содержимого окна. Если окно имеет существующую иерархию представлений, старые представления удаляются до установки новых.

Дважды проверьте файл пера, чтобы убедиться, что он подключен.

Хотя «Приложение пыталось выдвинуть ноль контроллера вида на целевой UINavigationController» звучит так, как будто вы теряете ссылку на VC. Как устанавливается свойство для этого? Это сохраняется?

Вот документы.

http://developer.apple.com/library/ios/documentation/uikit/reference/UIWindow_Class/UIWindowClassReference/UIWindowClassReference.html#//apple_ref/doc/uid/TP40006817-CH3-SW33

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...