Я работаю на универсальное приложение с последней инстанции UISplitViewController (пост iOS8, работает как на iPhone и IPad)Какова наилучшая практика обновления типов аксессуаров в UISplitViewController?
компании Apple рекорды практики говорит, что на простом табличном, открывая новые детали просмотра, вы должны показать индикатор раскрытия НО, но когда ваше расщепление отображается на iPad, вы не должны показывать аксессуар к табурету мастера.
Так я придумал этот код в моей cellForRowAtIndexPath функции:
cell.accessoryType = self.splitViewController!.collapsed ? .DisclosureIndicator : .None;
Это хорошо работает, но через некоторое время, изменения splitviewcontroller, например, на iPhone 6 плюс, при повороте устройства или на iPad, когда вы используете многозадачную функцию с разделенным экраном, представление таблицы мастеров должно скрывать или снова показывать вид аксессуара (и он делает это для новых загруженных ячеек, как это должно быть), но мне нужно будет перезагрузить весь tableview.
На данный момент я не нашел функцию, которая запускает после того, как вид изменил его макет, чтобы вызвать мой tableview.reloadData()
.
Может ли кто-нибудь сказать мне, что это лучшая практика для перезагрузки моего стола и убедитесь, что аксессуар изменился так же, как и для всех ячеек, когда меня изменяет макет раскладки?
Thats nice, он работает для изменения ориентации, но он не будет работать для iPad, когда я использую многозадачное разделенное приложение на iPad. Он возвращается на макет iPhone, а UIDeviceOrientationDidChangeNotification не вызывается при запуске интерфейса многозадачности на iPad. Я буду искать уведомление об изменении макета в яблочных документах, но мне нравится, как вы это делаете! – Dean
Я также добавил экземпляр 'viewWillTransitionToSize'. Так или иначе, он не работал сам по себе, но бок о бок с вашим решением я охватываю все свои варианты использования! – Dean
@Dean Проблема, которую я обнаружил при изменении размера, заключалась в том, что это вызвано до того, как произойдет переход. Однако похоже, что этот метод передает вам UIViewControllerTransitionCoordinator, в который вы можете зарегистрировать блок для выполнения при завершении перехода. Я бы попытался вызвать перезагрузку из этого блока. https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIViewControllerTransitionCoordinator_Protocol/index.html#//apple_ref/occ/intfm/UIViewControllerTransitionCoordinator/notifyWhenInteractionEndsUsingBlock: –