У меня возникли проблемы с запуском UISplitViewController в универсальном приложении, где я уже закодировал часть iPhone. В качестве метода устранения неполадок я решил начать с нового проекта и просто попытаться сделать одно действие, которое вызывает проблему, и оно все еще есть.Нельзя использовать UISplitViewController в универсальном приложении?
Если я создаю универсальное приложение, а в iPad-контроллере создаю разделенный вид (либо в XIB, либо в коде), то он отображается как черный (если не задан цвет фона). Если я сделаю это только в iPad-приложении, он отобразится просто отлично.
Я был бы признателен, если бы кто-нибудь мог проверить это самостоятельно и посмотреть, получают ли они то же самое, или скажите мне, где я ошибаюсь.
- В Xcode создайте универсальное приложение «на основе окон».
- Зайдите в контроллер iPad и вставьте код внизу.
То, что я получаю, это черный экран, а не разделенный вид. Тот же код работает в iPad-only. Что я делаю неправильно, или что настроено неправильно?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UISplitViewController *split = [[UISplitViewController alloc] initWithNibName:nil bundle:nil];
UIViewController *vc1 = [[UIViewController alloc] initWithNibName:nil bundle:nil];
vc1.view.backgroundColor = [UIColor redColor];
UIViewController *vc2 = [[UIViewController alloc] initWithNibName:nil bundle:nil];
vc2.view.backgroundColor = [UIColor blueColor];
split.viewControllers = [NSArray arrayWithObjects:vc1, vc2, nil];
[window addSubview:split.view];
[window makeKeyAndVisible];
[vc1 release];
[vc2 release];
[split release];
return YES;
}
Вы правы с управлением памятью и дополнительным Ивар. Правило shouldRotateToInterfaceOrientation: слишком сильно звучит, но это не работает для меня. Ты пробовал? – tonklon
Если подклассификация UISplitViewController не работает для вас, попробуйте подклассифицировать каждый UIViewController и переопределить shouldRotateToInterfaceOrientation: в каждом из них. Это, вероятно, лучший способ сделать это в любом случае ... – ian
Это был авторотат субблоков splitview и проблема с выпуском. – codepoet