Нажмите Next Detail UIView, не возвращаясь к родительскому UITableView - PullRequest
0 голосов
/ 01 сентября 2010

У меня есть контроллер Nav, который начинается с табличного представления. Каждый ряд подталкивает к детализации UIView. Я хотел бы иметь кнопку «Далее» в Detail UIView, которая бы открывала текущее представление и открывала то, что соответствует следующей строке в родительском UITableView, используя тот же контроллер представления, не возвращаясь в TableView. В идеале, это будет использовать анимацию слайдов или флипов.

Мысли

Ответы [ 3 ]

0 голосов
/ 01 сентября 2010

Я понял это.По сути, я загружаю следующий вид и помещаю его в стек навигации, а затем удаляю текущий вид из стека.Это немного хакерское кодирование ссылки на объект, но оно работает, и анимация выглядит хорошо.

Вот фрагмент кода:

NSMutableArray *allControllers = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers];
        NSLog(@"Controller Count:%d", [allControllers count]);
        NSInteger backCount = 2;
        [allControllers removeObjectAtIndex:[allControllers count] - backCount];
        [self.navigationController setViewControllers:allControllers animated:NO];
        [allControllers release];



        [self.navigationController popViewControllerAnimated:YES];
0 голосов
/ 01 сентября 2010

Как я это делаю:

// Push the blog view, but don't add to the stack by popping first.
[self.navigationController popViewControllerAnimated: NO];
[listViewController.navigationController pushViewController: detailViewController animated:YES];

listViewController в коде является родительским представлением с табличным представлением. DetailViewController - это тот, который вам нужно создать первым, содержащий сведения о следующем элементе в списке.

Если вы хотите вернуться назад, то есть в таблице, вам нужно немного другой код:

// Fake a pop animation by pushing the controller, then pushing a dummy and popping back.
DummyController* dummy = [DummyController alloc];
[self.navigationController popViewControllerAnimated: NO];
[lListViewController.navigationController pushViewController: detailViewController animated:NO];
[detailViewController.navigationController pushViewController:dummy animated:NO];
[dummy.navigationController popViewControllerAnimated:YES];

Это прекрасно оживляет переходы страниц.

0 голосов
/ 01 сентября 2010

Я понял это.По сути, я загружаю следующий вид и помещаю его в стек навигации, а затем удаляю текущий вид из стека.Это немного хакерское кодирование ссылки на объект, но это работает, и анимация выглядит хорошо.

Вот фрагмент кода ключа:

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