将NSIndexPath传递给新视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将NSIndexPath传递给新视图相关的知识,希望对你有一定的参考价值。

我有一个真正的麻烦将NSIndexPath传递给我的新视图。这是应用程序的工作方式:

我的nab br中有一个UIBarButtonItem,点击它然后你得到一个popover视图,这显示了一堆东西。我需要从我的主视图中获取一个NSIndexPath,这个popover视图。

我在我的popover视图类中有一个NSIndexPath的属性,并且popover转换在我的storyboard中连接起来。

然后我有这段代码来传递视图的索引路径:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"statsPopover"])
    {
        StatsViewController *statsVC = [segue destinationViewController];

        statsVC.selectedIndex = stageSelectionTable.indexPathForSelectedRow;
    }
}

但是,在调用此方法时,实际上不会在视图之间发送索引路径。弹出窗口上的索引路径始终是默认值,0,0行和节。

答案

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

做这种诊断会让您走上解决问题的正确道路。保持它 - 如果你使用NSLog或调试器测试其他一些东西,你应该能够找到问题。

  • 你知道statsVC是非nil吗?如果它是nil,你设置selectedIndex的消息什么都不做。
  • statsVC是你期望的课吗?例如,如果你的popover中的(table?)视图嵌入在导航控制器中,segue.destinationViewController将指向导航控制器,你需要查看其子视图控制器数组以找到你正在寻找的那个。
  • 你的StatsViewController类使用的selectedIndex属性正在使用的访问器方法是什么? (如果它是强/保留属性的合成访问器,这应该不是问题。)
  • 在你的StatsViewController课程中,你是否尝试在selectedIndex实际设置之前使用它?在prepareForSegue:sender:中设置属性然后在viewDidLoad中使用它应该可以正常工作,但在awakeFromNib中使用它可能不会,并且在init...方法中使用它肯定不会。

以上是关于将NSIndexPath传递给新视图的主要内容,如果未能解决你的问题,请参考以下文章

需要为 iCarousel 创建一个 NSIndexPath 以将信息传递给其他视图控制器

如何将特定的 ListTile 变量传递给新的页面路由 onTap?

如何将图像视图从改造加载的片段传递给子片段?

如何将值从一个片段的回收器视图项传递到另一个片段

将数据从片段列表视图项传递到活动字符串变量 onitemclicklistener

将触摸传递给下的视图