我目前正在处理一个项目,该项目需要在UITableView中显示客户列表,然后将关联的单元格连接到TabView,以便在选项卡式ui中显示详细的客户记录。
我已经用所需的TableView设置了故事板,并且填充得很好。TabViews all安装程序和我已经在主TabView控制器中添加了一个自定义类,该类可以获取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;我已经尝试了上面的几种变体,但都没有用。
发布于 2014-12-04 12:29:34
你也可以使用NSUserDefaults来保存数据,我认为这是在整个应用程序中保存数据的最简单的方法。
发布于 2014-12-04 13:30:09
从你发布的代码来看,headerData是一个新的实例。所以companyName和ID将是空的,除非你给他们分配一些值。
既然你提到你可以更新导航栏的标题,那么也可以尝试在这个控制器中使用相同的对象来获取值。(也许你可以使用一个单子对象)。
发布于 2014-12-04 16:36:27
如果您使用segueing,则必须使用prepareForSegue:sender:方法,如下所示:
- (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];
}https://stackoverflow.com/questions/27286235
复制相似问题