将NSIndexPath传递给新视图

时间:2012-06-07 12:08:21

标签: objective-c ipad storyboard uipopovercontroller

我遇到了将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行和节。

1 个答案:

答案 0 :(得分:0)

您说通过调试/记录知道该方法正在运行,您的if语句被触发,stageSelectionTable.indexPathForSelectedRow具有您期望的值。

进行这种诊断可以帮助您找到解决问题的正确途径。坚持下去 - 如果您使用NSLog或调试器测试其他一些内容,您应该能够找到问题。

  • 您知道statsVC是非nil吗?如果是nil,则设置selectedIndex的邮件不会执行任何操作。

  • statsVC是您期望的课程吗?例如,如果弹出框中的(table?)视图嵌入在导航控制器中,segue.destinationViewController将指向导航控制器,您需要查看其子视图控制器数组以查找你要找的人。

  • 您的StatsViewController类正在使用的selectedIndex属性正在使用的访问器方法是什么? (如果它是强/保留属性的合成访问器,那么这不应该是一个问题。)

  • StatsViewController课程中,您是否尝试在selectedIndex实际设置之前使用它?在prepareForSegue:sender:中设置属性然后在viewDidLoad中使用该属性应该可以正常工作,但在awakeFromNib中使用它可能不会,并且在init...方法中使用它肯定会赢得&#39 ;吨