我有一个带有分割视图的 iPad 应用程序,并且详细视图控制器的导航栏中有一个右栏按钮。
该按钮调用由导航控制器和两个表视图组成的弹出窗口。
如下图所示
由于故事板在图片上很小,我添加了一些解释。
白色控制器是detailViewController(splitviewcontroller 的右侧),它位于导航控制器内。白色视图右侧的三个视图从左到右分别是:navigationController、firstTableView、secondTableView。
我的问题是我需要将参数传递给第一个表视图才能正确配置它。
当视图控制器共享相同的导航控制器时,我常常这样做。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"popoverButtonSegue"]){
MyPopoverFirstTableViewController *popoverFirstTVC = [[MyPopoverFirstTableViewController alloc] init];
popoverFirstTVC = segue.destinationViewController;
popoverFirstTVC.property1 = aProperty1;
popoverFirstTVC.property2 = aProperty2;
}
}
我的问题是,这样做时出现错误,因为目标控制器不是我的 popoverFirstTableViewController 但 NavigationController 和导航控制器当然没有“property1”和“property2”。
也许这是一个基本问题,但我被困在这里。
当此表位于导航控制器内时,如何通过分配我定义的一些属性来配置我的表视图?
所有功劳都属于@Michael Kernahan,但只要他不将其发布为答案,我就会将其写为后续内容,供寻找相同答案的人使用。
就我而言,问题是我正在分配目标控制器,即导航控制器
popoverFirstTVC = segue.destinationViewController;
我应该做的是访问该导航控制器的 topViewController 。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"popoverButtonSegue"]){
MyPopoverFirstTableViewController *popoverFirstTVC = (MyPopoverFirstTableViewController *)((UINavigationController *) segue.destinationViewController).topViewController;
popoverFirstTVC.property1 = aProperty1;
popoverFirstTVC.property2 = aProperty2;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)