首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据从UITableCell传递到UITabView

将数据从UITableCell传递到UITabView
EN

Stack Overflow用户
提问于 2014-12-04 12:20:02
回答 3查看 82关注 0票数 0

我目前正在处理一个项目,该项目需要在UITableView中显示客户列表,然后将关联的单元格连接到TabView,以便在选项卡式ui中显示详细的客户记录。

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

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

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

代码语言:javascript
复制
companyTabController *headerData = [companyTabController alloc];
_companyName_lbl.text = headerData.companyName; 
_companyID_lbl.text = headerData.ID;

我已经尝试了上面的几种变体,但都没有用。

EN

回答 3

Stack Overflow用户

发布于 2014-12-04 12:29:34

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

票数 7
EN

Stack Overflow用户

发布于 2014-12-04 13:30:09

从你发布的代码来看,headerData是一个新的实例。所以companyNameID将是空的,除非你给他们分配一些值。

既然你提到你可以更新导航栏的标题,那么也可以尝试在这个控制器中使用相同的对象来获取值。(也许你可以使用一个单子对象)。

票数 1
EN

Stack Overflow用户

发布于 2014-12-04 16:36:27

如果您使用segueing,则必须使用prepareForSegue:sender:方法,如下所示:

代码语言:javascript
复制
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
companyTabController *companyTC = [segue destinationViewController];
companyTC.companyName_lbl.text = headerData.companyName;
etc
}

如果你没有序列化,你将不得不这样实例化它:

代码语言:javascript
复制
- (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];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27286235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档