0

У меня возникла проблема с дизайном UITableView в UIViewController, когда он представлен на iPad iPad UINavigationController. Очень просто, я хочу, чтобы граница ячейки таблицы не отображалась, и поэтому в IB я устанавливаю стиль Separator Style на «None» и цвет Separator на «Clear Color». В СИБЕ моя сгруппированная таблица выглядит так, как я хочу, чтобы это выглядело:Моделирование UITableView игнорируется в модальном стиле презентации

enter image description here

В СИБЕ Tableview подключен к файлу владелице для его источника и делегат. Он также устанавливается как IBOutlet. Имя класса владельца файла правильно установлено в VC, и я хочу загрузить этот NIB. При запуске я создаю экземпляр этого VC, затем создаю экземпляр UINavigationController. Я запустил UINavigationController с этим VC (который имеет UITableView), а затем представляет UINavigationController. На iPad я представляю его с форматом презентации в стиле модальной формы.

В моем application:didFinishLaunchingWithOptions: методе AppDelegate, я экземпляр и сохранить ссылку на обоих ВК и его родителей `UINavigationController:

self.loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; 
self.loginViewNavigationController = [[UINavigationController alloc] initWithRootViewController:self.loginViewController]; 

Затем ... после того, как какая-то логика была выполнена (еще в AppDelegate) Представляю UINavigationController модально:

if (self.loginViewNavigationController != nil) { 

    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) 
     self.loginViewNavigationController.modalPresentationStyle = UIModalPresentationFormSheet; 

     [self.window.rootViewController presentViewController:self.loginViewNavigationController animated:YES completion:nil]; 
} 

Все хорошо с миром на iPhone, в том, что моя клетка граница не видна:

enter image description here

Однако на IPad граница ячейки хорошо видна и моя навигация заголовка стайлинг все уводят (это проблема на другой день):

enter image description here

Я бы очень хотел знать почему UITableView игнорирует стиль разделителя, подобный этому на iPad. Я пробовал установить modalPresentationStyle на PageSheet и FullScreen и имел ту же проблему. Я также попытался установить эти свойства в VC's viewDidLoad (который содержит табличное представление) безрезультатно. Я также попытался создать IPAD-специфический NIB «LoginViewController ~ ipad» и подключить все так, но это, похоже, не изменило ситуацию.

Возможно, я сохраняю логин VC, и он содержит UINavigationController, но я не могу быть уверен, потому что это отлично работает на iPhone.

Я предполагаю, что это, вероятно, имеет какое-то отношение к модальной презентации на iPad, и для всех моих поисков и попыток разных комбинаций я не могу понять, что происходит. Есть идеи?

[EDIT]

Я работаю на тренажере с прошивкой 6.1, 5.1 и 5.0. Я вижу ту же проблему во всех версиях. На данный момент я придерживаюсь iOS 6.1 и буду двигаться назад, чтобы быть совместимым. Я еще не перешел на устройство.

Спасибо!

+0

Что такое версия iOS на вашем iPhone и iPad? – Rajneesh071

+0

К сожалению. Вероятно, следовало включить эту информацию. Я работаю с iOS 6.1 (и должен также поддерживать версии 5.1 и 5.0). Вопрос был отредактирован. – Aaron

ответ

0

Как оказалось, у меня был какой-то код неисправности в моем подклассе UINavigationController (плохой, я знаю?), Который неправильно не улаживал навигационную панель и таблицу. С тех пор я исправил проблему, и теперь UINavigationController выглядит так, как должно.