Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将数据从UITableCell传递到UITableView_Ios_Xcode - Fatal编程技术网

Ios 将数据从UITableCell传递到UITableView

Ios 将数据从UITableCell传递到UITableView,ios,xcode,Ios,Xcode,我目前正在从事一个项目,该项目要求在UITableView中显示客户列表,然后关联的单元格将切换到选项卡视图,以便在选项卡式ui中显示详细的客户记录 我已经用所需的TableView设置了故事板,并且填充得很好。选项卡视图全部设置,我在主选项卡视图控制器中添加了一个自定义类,该类可以获取查询服务所需的ID,并返回进一步的数据和客户名称。我还为需要获取ID值的第一个选项卡添加了UIViewController 我似乎找不到传递的ID或公司名称。我已尝试导入UITabView的.h文件。我知道UIT

我目前正在从事一个项目,该项目要求在UITableView中显示客户列表,然后关联的单元格将切换到选项卡视图,以便在选项卡式ui中显示详细的客户记录

我已经用所需的TableView设置了故事板,并且填充得很好。选项卡视图全部设置,我在主选项卡视图控制器中添加了一个自定义类,该类可以获取查询服务所需的ID,并返回进一步的数据和客户名称。我还为需要获取ID值的第一个选项卡添加了UIViewController

我似乎找不到传递的ID或公司名称。我已尝试导入UITabView的.h文件。我知道UITabView.h文件正在使用.m文件中的值填充。我正在使用客户名称更新导航栏的标题。然而,每当我在为单个选项卡获取.m文件中ID的行上设置断点时,它总是返回nil

我正在使用以下代码尝试获取此值:

companyTabController *headerData = [companyTabController alloc];
_companyName_lbl.text = headerData.companyName; 
_companyID_lbl.text = headerData.ID;

我试过以上几种方法,但都没有用

您也可以使用NSUserDefaults保存数据,我认为这是在整个应用程序中保存数据的最简单方法。

根据您发布的代码,headerData是一个新实例。所以companyName和ID将为nil,除非您为它们赋值


由于您提到可以更新导航栏标题,因此也可以尝试使用相同的对象获取此控制器中的值。如果您的segue必须使用prepareforsgue:sender:方法,那么您可以使用singleton对象

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
companyTabController *companyTC = [segue destinationViewController];
companyTC.companyName_lbl.text = headerData.companyName;
etc
}
如果您没有进行分段,则必须将其实例化为:

- (void) didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *selectedCell = [self.tableView cellForRowAtIndexPath:indexPath];
companyTabController *companyTC = [self.storyboard instantiateViewControllerWithIdentifier:@"CopmanyTabController"];
companyTC.companyName_lbl.text = selectedCell.textLabel.text or = headerData.companyName;
[self.navigationController pushViewController:companyTC animated:YES];
}

不确定这是否是问题所在,但我认为第一行应该是[[companyTabController alloc]init];谢谢你的回复。我想在我发布并尝试之后,仍然没有什么乐趣;请确保companyName\u lbl在选项卡视图中是一个合成属性,如果您只是传递数据,它不必是一个出口。这就是我将名称传递给标题的方式,但是它不会超出第一个VC。抱歉,我编辑了我的答案以包含标签的.text。请尝试。如果这不起作用,则可能是视图控制器的分段不正确,或者在第二个视图控制器中没有合成属性。headerdata.company name是否返回nil?是的,两个值在第二个VC中都返回为nil。一开始很好。目前,我已经在NSUserDefaults中投入了价值,这让我度过了难关,但从长远来看,我可能需要一个更好的解决方案。我来看看Seguesy你的问题就在@Dheeraj指出的地方。如果你什么都不通过,你什么也得不到。例如,只要切换到这一行,它就会传递companyTC.companyName\u lbl.text=@Apple Inc;它会过去的。但你不能什么都不通过,就指望能得到什么。如何从页眉数据设置公司名称?您的右侧NSUserDedault不是进入NSUserDefaults范围的方法,不是设备范围?我希望尽可能将此类信息保留在“应用程序”中,以限制第三方的潜在访问。如果NSUserDefaults的范围仅限于应用程序,那么这很可能是一个计划。谢谢