Objective c UITableView+;。plist&x2B;UINavigationController问题
作为我的第一个应用程序,我正在尝试掌握简单的基于导航的钱币收藏应用程序 从.plist填充的数组中的索引有一些问题。普利斯特有191项记录;普通国家列表->项目0-字符串-阿尔巴尼亚。。。项目190-字符串-瓦努阿图 我将这些记录读入临时数组以填充UITableViewObjective c UITableView+;。plist&x2B;UINavigationController问题,objective-c,ios,ios4,Objective C,Ios,Ios4,作为我的第一个应用程序,我正在尝试掌握简单的基于导航的钱币收藏应用程序 从.plist填充的数组中的索引有一些问题。普利斯特有191项记录;普通国家列表->项目0-字符串-阿尔巴尼亚。。。项目190-字符串-瓦努阿图 我将这些记录读入临时数组以填充UITableView NSString *countriesFile=[[NSBundle mainBundle]pathForResource:@"countries" ofType:@"plist"]; countries=[[NSArray a
NSString *countriesFile=[[NSBundle mainBundle]pathForResource:@"countries" ofType:@"plist"];
countries=[[NSArray alloc]initWithContentsOfFile:countriesFile];
此表视图包含节->洲
我的问题是:
当推到另一个nib时,它应该读取国家名称并在标题和标签中显示。的确如此,但只适用于欧洲国家。如果我接触其他大陆的国家,我会看到一些欧洲国家。请查看屏幕截图
点击欧洲国家->比利时,显示右侧
转到非洲科:
拍摄安哥拉和奥地利
安哥拉的指数是92。奥地利-1。但奥地利和安哥拉都是其本土的第二个牢房
问题出在哪里?会是什么
提前感谢。我假设您正在使用
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(nsindepath*)indepath
来告知您何时单击了列表中的项目?
另外,您是否使用[indexPath行]
(或indexPath.row
)来计算您点击的行的索引
行
属性返回的是当前节中的行索引。它不会返回整个表的绝对行索引。因此,单击第一节中的索引2项或第二节中的索引2项并不重要,row
在这两种情况下都将返回2
一个想法是稍微修改一下.plist文件。与其只有一个长长的国家数组,不如有一个代表大陆的父数组。然后,这个大陆数组中每个索引的对象都有另一个数组,该数组将保存其中的国家列表
-(void)tableView: (UITableView*)tableView didSelectRowAtIndexPath: (NSIndexPath*)indexPath
{
NSUInteger section=[indexPath section];
NSUInteger row=[indexPath row];
NSString* countryName=[[plistArray objectAtIndex: section] objectAtIndex: row];
//rest of code...
}
听起来您没有考虑indexPath的节值。indexPath有两部分,一部分和一行。在具有单个节的表中,通常只读取行值。在您的例子中,看起来您有一个分组表,因此需要同时读取数据位置的indexPath.section和indexPath.row 你想更改密码是什么意思?怎么用?数组->集合?我的方法现在看起来像:-(void)tableView:(UITableView)tableView DidSelectRowatineXpath:(NSIndexPath*)indexPath{nsInteger节=[indexPath节];nsInteger行=[indexPath行];NSString countryName=[[countries objectAtIndex:section]objectAtIndex:row];SelectedCountry*SelectedCountry=[[SelectedCountry alloc]initWithNibName:@“SelectedCountry”捆绑包:nil];SelectedCountry.SelectedCountry=[countryName objectAtIndex:Indexath.row];[self.navigationController pushViewController:SelectedCountry动画:是];[SelectedCountry发布];]它现在说:“NSString可能不会响应objectAtIndex”。我应该改变变量类型吗?为了什么?伙计们-)史蒂夫·乔布斯去世了。这是今年最悲伤的一次。至少对我来说是如此。P@Nathan例如.plist文件:。请检查(某种类型的)您的方法应该是什么样子的示例:。如注释中所述,您需要修改该方法,以便它可以读取上面我格式化的.plist文件。这有意义吗?每个大陆都是一个部分。因此,第0部分是欧洲。请查看任何UITable文档。