Как мне использовать UINavigationController без xib? - PullRequest
1 голос
/ 11 мая 2011

У меня иррациональное отвращение к Интерфейсному Разработчику.

Вот что у меня есть, все, что я получаю, это черный экран.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    // Add the navigation controller's view to the window and display.
    PrayViewController* prayViewController = [[PrayViewController alloc] initWithTabBar];
    [_window addSubview: [[UINavigationController alloc] initWithRootViewController:prayViewController]];
    [prayViewController release];
    [self.window makeKeyAndVisible];
    return YES;
}

Ответы [ 2 ]

1 голос
/ 11 мая 2011

Вы должны добавить представление в окно, например так:

UIViewController *rootController = [[MyRootViewController alloc] init];
navigationController = [[UINavigationController alloc]
                            initWithRootViewController:rootController];
[rootController release];

window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// *** IMPORTANT DIFFERENCE:
[window addSubview:navigationController.view];

[window makeKeyAndVisible];

Вы добавляете в окно весь экземпляр контроллера представления навигации.

UIWindow является потомкомUIView, поэтому он просто наследует метод addSubview .Ожидается еще один UIView в качестве параметра.

0 голосов
/ 11 мая 2011

Я бы проверил, что ваше окно и его представление возвращают то, что вы ожидаете через NSLog.Трудно сказать, не видя код, который создает окно, и его вид, но я подозреваю, что один из них создается неправильно.

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