2012-05-05 5 views
4

Я хотел бы показать модальный диалог из xib. Код, который показывает мое окно:Представление Modal View Controller от Xib

self.vcSettings = [[ViewControllerSettings alloc] initWithNibName:@"ViewControllerSettings" bundle:[NSBundle mainBundle]]; 

[self presentModalViewController:self.vcSettings animated:YES]; 

Когда это работает, хотя, я получаю пустой экран, а не то, что было внутри моего ViewControllerSettings.xib. Кажется, я как-то неправильно показываю представление. Любые советы приветствуются.

EDIT:

Я думаю, что это должно быть

[self.navigationController presentModalViewController:self.vcSettings animated:YES]; 

, но по какой-то причине self.navigationController равна нулю.

EDIT:

Само это UIViewController конкретизируется в моем AppDelegate так:

UIViewController* viewMain = [[ViewController_iPhone alloc]  initWithNibName:@"ViewController_iPhone" bundle:nil]; 

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
// Override point for customization after application launch. 
self.window.backgroundColor = [UIColor whiteColor]; 
self.window.rootViewController = viewMain; 
[self.window makeKeyAndVisible]; 
+0

Как насчет переключения метода на [self presentViewController: self.vcSettings анимированный: ДА завершение:^{ NSLog (@ "% @", self.presentedViewController); }]; Что печатает на консоли? Является ли объект self.presentedViewController нолем? –

+1

Убедитесь, что точка просмотра viewcontroller подключена к корневому представлению в своем xib. –

+0

@ Vladim, спасибо, вид подключен в корневом представлении xib – dev

ответ

10

Вам нужно создать UINavigationController, установить его вид корневой к контроллеру XIB, который вы хотите представить (в вашем случае vcSettings), то представляем UINavigationController

self.vcSettings = [[ViewControllerSettings alloc] initWithNibName:@"ViewControllerSettings" bundle:nil]; 
UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:vcSettings]; 
[self.navigationController presentModalViewController:controller animated:YES];