Интерфейс iPad SplitViewController - приложение Apple Mail для репликации - PullRequest
3 голосов
/ 01 октября 2010

Хорошо, я уже задавал похожий вопрос, но теперь столкнулся с другой проблемой по той же проблеме! Я создаю приложение для iPad и пытаюсь скопировать пользовательский интерфейс приложения Apple Mail. Первоначально я не мог обновить DetailView, потому что я не обновлял делегата при нажатии нового контроллера навигации в левом представлении, это было решено с помощью:

newRootViewController.myDelegate = self.delegate;

Я включил функциональность из примера кода Apple MultipleDetailViews, включив в него более одного подробного представления (используя ), но это останавливает обновление метки в подробном представлении.

Я могу решить эту проблему, удалив соединение между splitViewController и RootViewController с помощью IB, и затем обновление ярлыка работает, хотя это [очевидно] останавливает работу функции представления нескольких деталей ... любые идеи

1 Ответ

3 голосов
/ 05 октября 2010

Я не видел пример MutipleDetailViews, но думаю, что это ваш делегат.

Когда вы выбираете ячейку в корне, она делегирует детали. В вашем предыдущем вопросе вы меняли корень, нажимая новый на навигационную панель; это потребовало, чтобы вы установили делегата нового корня к тому же делегату предыдущего.

Ваш корневой вид указывает на исходные детали.

Если вы замените или измените детали, то любая делегация, отправленная из корня, либо будет равна нулю (если вы уничтожили старую деталь), либо вы не сможете увидеть ее (если она просто сидит за новой деталью)

Если вы заменяете детали (уничтожили старую), вам нужно снова установить делегат корня (все / любые корни).

Если вы меняете / добавляете новые виды, тогда вам действительно стоит посмотреть NSNotificationCenter

Пример:

[NSNotificationCenter defaultCenter]
  addObserver:self
     selector:@selector(handleSomethingDidHappen:)
         name:ClassCSomethingDidHappenNotification                
       object:aClassCObject];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...