- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的问题:当用户在某个单元格中选择一个播放器时,我希望与该播放器相关的其余信息显示在新的 View Controller 上
到目前为止,我的方法是这样的:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
IPlayerViewController *detailViewController = [[IPlayerViewController alloc] initWithNibName:@"IPlayerViewController.h" bundle:nil];
Player *playerF = [playerArray objectAtIndex:indexPath.row];
detailViewController.PlayerLabel.text=playerF.Name;
[self.navigationController pushViewController:detailViewController animated:YES];
}
但是,我在 IPlayerViewController 中创建的 PlayerLabel(并将 UILabel 连接到 Storyboard 中的标签)是空白的。
如果这看起来很眼熟,那是因为我正在学习以下教程,但试图添加我自己的东西。非常感谢! http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1
编辑:我正在使用 Storyboard。然而,在预定义的方法中,xcode 附带了以下注释以使用 Nib Name 进行初始化,这让我很失望。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Navigation logic may go here. Create and push another view controller.
/*
<#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
// ...
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];
*/
}
看来我应该使用 prepareForSegue。这是我在 didSelectRowAtIndexPath 中调用的方法还是忽略该方法?
最佳答案
如果您正在使用 Storyboard,那么很可能您不会看到对 -tableView:didSelectRowAtIndexPath:
的调用。如果您使用 segues 进入下一个 View ,那么您将需要使用 -prepareForSegue:sender:
参见:How to pass prepareForSegue: an object .
更新
您是否有从 TableView 单元格到详细 View Controller 的转接?
如果你有一个 segue,那么 -tableView:didSelectRowAtIndexPath:
不是你想要的。如果你有一个 segue,请在你的 TableView Controller 中创建一个 -prepareForSegue:sender:
方法。它看起来像:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
Player *player = [self.playerArray objectAtIndex:indexPath.row];
IPlayerViewController *destination = segue.destinationViewController;
destination.player = player;
}
当然假设 IPlayerViewController 有一个播放器属性。
希望对您有所帮助。
关于objective-c - 如何使用 "didSelectRowAtIndexPath:(NSIndexPath *)indexPath"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11751996/
Cannot convert value of type 'NSIndexPath' to expected argument type 'NSIndexPath' 错误在 self.collecti
有人知道 NSIndexpath.row 和 NSIndexpath.item 之间的区别吗? 具体来说,我使用哪一个: -(UITableViewCell *)tableView:(UITableV
有谁知道 NSIndexpath.row 和 NSIndexpath.item 的区别? 具体来说,我用在哪一个: -(UITableViewCell *)tableView:(UITableView
我想使用deleteRowsAtIndexPaths从tableView中删除一行,我用来获取特定行的NSIndexPath的代码如下: let pointInTable: CGPoint =
Apple's multithreading docs不要将 NSIndexPath 列为线程安全与否!作为一个不可变的类,我通常希望它是线程安全的。 以前,我确信文档用于声明 NSIndexPath
我的应用程序研究即将完成。我需要能够学习如何做的最后一件事是以下情况:假设我已经创建了一个 UItableview 钻取应用程序,但是一旦用户到达该钻取的末尾(他们对特定狗产品的选择)实例现在非常具体
所以我一直在四处搜索,似乎大多数人认为以下列方式递增 indexPath 是正确的方法: NSIndexPath *newIndexPath = [NSIndexPath indexPathForRo
我之前从 uitableview 获得了 NSIndexPath,但我不确定为什么这对 collectionview 不起作用?任何帮助将不胜感激! 这是我需要修复的代码: NSIndexPath *
在我的 TableView 中,有 4 个部分,第一部分有 3 行,第二部分有 2 行,第三部分有 2 行,第四部分有 1 行。 按下时如何引用这些行?这是我目前使用的代码。请帮忙 override
必须使用 map、filter、reduce 和其他 friend 以一种更具表现力的方式来做到这一点。 背景: categories 属性是一个 [Category]?,其中每个元素都有一个类型为
我正在寻找一种方法来测试索引路径是否相等,我所说的相等是指每个级别都相等吗?我试过 compare: 但它似乎不起作用,与 NSOrderedSame 比较时我总是得到 true,即使索引肯定不一样。
NSIndexPath 的具体工作是什么,我的理解是,IndexPath 变量用于引用我们要显示的单元格?:o?但它存储了什么值(value)?我是说。,设置 indexPath 变量的内部过程是什么
这将是一件非常愚蠢的事情,但我的 cellForRowAtIndexPath 中有这段代码: if ([self.indexPathSelected compare:indexPath] == NSO
我有一个 NSMutableArray包含 NSIndexPath对象,我想按它们的 row 对它们进行排序, 升序。 最短/最简单的方法是什么? 这是我尝试过的: [self.selectedInd
在我的应用程序中,我有一个 TableView Controller ,它使用 .plist 文件中的部分构建一个表。每个单元格都是唯一的,因为它基于为 plist 文件中的每个项目存储的 ID 参数
如果我有一个值为:{ 0, 0} 的索引路径。将其更改为 { 0, 1} 的正确方法是什么?我知道如果它是一个普通的 c 数组,它就会是: unsigned i_array[] = { 0, 0};
在 commitEditingStyle tableView 方法中,“.row”属性不适用于 NSIndexPath。有什么想法吗? 这是调用 - (void)tableView:(UITableV
我用UITableView做了一个简单的演示:当选择一个单元格时,在单元格中显示一个勾号,最后选定的单元格将被取消勾号,当在模拟器中运行时,选择时很好第一次选择一个单元格,而如果选择另一个单元格,应用
我正在尝试将记录动态添加到已填充的 UITable 中。在我的 UITableView 类中,我有一个自定义 List 对象 List _data=new List(); 我从网络服务调用中添加记录,
我正在使用 Collection View 来显示从服务器接收的数据。返回的 json 预订数组如下所示: [ { "id": 13644766, "check
我是一名优秀的程序员,十分优秀!