2014-12-17 2 views
0

Я хочу создать приложение, которое использует UISplitViewController. Я использую xcode 6 + ios 8.1 SDk. Я создал образец приложения, который отлично работает на iOS 8 (iPhone 5, IPhone 6+, iPad), но не работает на iOS 7. Помогает ли кто-нибудь реализовать эту функциональность с поддержкой iOS 7 & iOS 8. (Я использую языковой объект C)UISplitViewController, созданный в xcode 6 с ios 7 Совместимость

+0

внимательно прочитайте справочную документацию класса UISplitViewController, вы не должны использовать методы и параметры, которые доступны только с ios 8. Вы можете опубликовать свой код инициализации, по крайней мере, для получения конкретной помощи. –

ответ

1

Вы действительно можете использовать UISplitViewController под iOS 7 (на iPhone или iPad), но есть несколько трюков. Во-первых, я не уверен, возможно ли программно, но вы должны использовать раскадровку. Во-вторых, убедитесь, что у вас есть Используйте флажок «Размер», установленный на раскадровке.

Наконец, есть также некоторые проблемы, при которых вы можете получить вызов с помощью навигационного контроллера, а не контроллера разделенного вида. Например, в способе по умолчанию prepareForSeque (при условии, разделенным проект контроллера по умолчанию), я должен был сделать следующее #if 1 твик:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([[segue identifier] isEqualToString:@"showDetail"]) { 
     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
     NSDate *object = self.objects[indexPath.row]; 

#if 1 
     DetailViewController *controller = nil; 
     if ([segue.destinationViewController isKindOfClass:[UINavigationController class]]) { 
      controller = (DetailViewController*)[segue.destinationViewController topViewController]; 
     } 
     else if ([controller isKindOfClass:[UISplitViewController class]]) { 
      controller = segue.destinationViewController; 
     } 
#else 
     DetailViewController *controller = (DetailViewController*)[[segue destinationViewController] topViewController]; 
#endif 
     [controller setDetailItem:object]; 
     controller.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem; 
     controller.navigationItem.leftItemsSupplementBackButton = YES; 
    } 
} 
+0

Эта настройка работает. –

Смежные вопросы