Использование UIPopOver для навигации в другом представлении - PullRequest
0 голосов
/ 13 апреля 2011

Итак, у меня есть класс ViewController, который называется TopNewsViewController.Он помещается в стек NavigationController из RootViewController.

В TopNewsViewController у меня есть всплывающее окно, которое появляется при нажатии кнопки.Он отображает табличное представление из PopOver.

Теперь в методе tableView: didSelectRowAtIndexPath в PopOver я хочу, чтобы он изменил некоторые свойства TopNewsViewController и повторно перенес его в стек навигации.Я реализую метод следующим образом:

TopNewsViewController *topNewsViewController = [[[TopNewsViewController alloc] initWithNibName:@"TopNewsViewController" bundle:nil] autorelease];

NSString *feedStr = [rootViewController.feeds objectAtIndex:rowNumber];
[rootViewController release];
NSArray *thisFeed = [NSArray arrayWithObjects:feedStr, nil];
topNewsViewController.feeds = thisFeed;
topNewsViewController.pageTitle = [categories objectAtIndex:rowNumber];
[self.navigationController pushViewController:topNewsViewController animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];

Я понял, что это не работает, потому что я использую «self.navigationController», когда PopOver не является ViewController, а вместо этого является UITableViewController.Я попытался сделать «topNewsViewController.navigationController», но это не сработало.

У кого-нибудь есть предложения по его реализации?Помощь / предложения с благодарностью!

1 Ответ

1 голос
/ 14 апреля 2011

Если я правильно вас понимаю, я думаю, что, вероятно, вам лучше всего реализовать делегат в UITableViewController вашего поповера, чтобы при выборе записи вызывался метод делегата для возврата выбора вашему RootViewController. Затем RootViewController будет обрабатывать нажатия и выталкивания любых новых TopNewsViewController, которые вы хотите использовать. Новый созданный вами TopNewsViewController по умолчанию не имеет контроллера nav, поэтому он не будет работать.

Итак, ваш корневой контроллер представления становится делегатом вашего контроллера представления popover ... когда выбирается строка, он говорит «popOver: didSelectRow:», а затем RootViewController отклоняет popover и «делает правильные вещи» (tm) .

...