если выражение parentViewContoller - PullRequest
0 голосов
/ 06 декабря 2009

Я пишу программу с UITableView и кнопкой добавления на панели навигации, которая ведет на страницу редактирования. Когда вы нажимаете на элемент в таблице, представление (rView) выдвигается с информацией, относящейся к этому элементу. В этом представлении есть кнопка редактирования, которая также ведет на страницу редактирования. Есть ли способ, которым я мог бы поместить оператор if для кнопки done на странице редактирования, который говорит: «если parentViewController - это UITableView для перехода к rView, иначе popViewController?» Я бы предположил, что есть способ сделать это, но я не уверен в синтаксисе, чтобы сделать это. Спасибо

1 Ответ

1 голос
/ 06 декабря 2009

Если я правильно понимаю, у вас есть UINavigationController и нажмите на него

  1. a UITableView
  2. rViewController (вы не можете выдвинуть представление, должен быть контроллером)
  3. и «EditController»

Но есть вероятность, что шаг 2 пропущен, и вы сразу перейдете к экрану редактирования.

Теперь, когда последний контроллер отключен, вы хотите иметь возможность всегда переходить к «rViewController», даже если он не находится в стеке.

Прежде всего, parentViewController - это НЕ предыдущий контроллер в стеке, а сам UINavigationController, так что он не имеет никакого отношения к данной проблеме.

Способ сделать это - явно установить свойство viewControllers для UINavigationController с помощью NSArray. Я не пробовал это, но это должно работать:

Когда пользователь нажимает кнопку «Добавить», вместо того, чтобы просто нажимать контроллер представления редактирования, сделайте что-то вроде:

NSArray* stack = navigationController.viewControllers;
navigationController.viewControllers = [stack arrayByAddingObject:rViewController];
[navigationController pushViewController:editController animated:YES];

(Кстати, я бы предложил не использовать имена типа «rView», за исключением, может быть, очень короткоживущих локальных переменных, например, в цикле. Использование описательных имен является очень важной частью идиомы Cocoa и очень вам поможет. в долгосрочной перспективе.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...