使用UIPopOver浏览其他视图

因此,我有一个名为\“ TopNewsViewController \”的ViewController类。它从RootViewController推送到NavigationController堆栈。 在TopNewsViewController中,单击按钮会弹出一个弹出窗口。它显示来自PopOver的表视图。 现在,在PopOver的tableView:didSelectRowAtIndexPath方法中,我希望它修改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];
我意识到这是行不通的,因为当PopOver不是ViewController而是UITableViewController时,我正在使用\“ self.navigationController \”。我尝试改用\“ topNewsViewController.navigationController \”,但没有用。 有人对如何实施有何建议?帮助/建议非常感谢!     
已邀请:
如果我对您的理解正确,那么我认为最好的选择是在弹窗的UITableViewController中实现一个委托,这样,当选择一条记录时,它会调用委托方法将选择移交给RootViewController 。然后,RootViewController将处理推入和弹出您要使用的任何新的TopNewsViewControllers。您在此处创建的新TopNewsViewController默认情况下没有导航控制器,这就是为什么它不起作用的原因。 因此,您的根视图控制器将成为您的弹出窗口视图控制器的委托人……当选择一行时,它会显示\“ popOver:didSelectRow:\”,然后RootViewController会关闭弹出窗口,并且\“做正确的事情\”(tm )。     

要回复问题请先登录注册