我遇到了将NSIndexPath传递给我的新视图的麻烦。这就是应用程序的工作原理:
我的nab br中有一个UIBarButtonItem,点击它然后你得到一个popover视图,这显示了一堆东西。我需要从我的主视图中获取一个NSIndexPath,以此弹出视图。
我的popover视图类中有NSIndexPath的属性,并且弹出窗口转换已连接到我的故事板中。
然后我有这段代码来传递视图的索引路径:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"statsPopover"])
{
StatsViewController *statsVC = [segue destinationViewController];
statsVC.selectedIndex = stageSelectionTable.indexPathForSelectedRow;
}
}
但是,在调用此方法时,实际上不会在视图之间发送索引路径。弹出窗口上的索引路径始终是默认值,0,0行和节。
答案 0 :(得分:0)
您说通过调试/记录知道该方法正在运行,您的if
语句被触发,stageSelectionTable.indexPathForSelectedRow
具有您期望的值。
进行这种诊断可以帮助您找到解决问题的正确途径。坚持下去 - 如果您使用NSLog
或调试器测试其他一些内容,您应该能够找到问题。
您知道statsVC
是非nil
吗?如果是nil
,则设置selectedIndex
的邮件不会执行任何操作。
statsVC
是您期望的课程吗?例如,如果弹出框中的(table?)视图嵌入在导航控制器中,segue.destinationViewController
将指向导航控制器,您需要查看其子视图控制器数组以查找你要找的人。
您的StatsViewController
类正在使用的selectedIndex
属性正在使用的访问器方法是什么? (如果它是强/保留属性的合成访问器,那么这不应该是一个问题。)
在StatsViewController
课程中,您是否尝试在selectedIndex
实际设置之前使用它?在prepareForSegue:sender:
中设置属性然后在viewDidLoad
中使用该属性应该可以正常工作,但在awakeFromNib
中使用它可能不会,并且在init...
方法中使用它肯定会赢得&#39 ;吨