【发布时间】:2015-08-09 02:53:42
【问题描述】:
我有一个带有 4 个选项卡的 TabBarController,其中 3 个是表格视图。我正在尝试为每个表格视图单元格添加详细信息,但我认为故事板效率不高,因为我有 50 多个详细信息页面。我对这一切都很陌生,我试图找出如何将细节链接到每个选项卡几个小时。我的表视图从第二个视图控制器开始。 这是 SecondViewController.m:
#import "SecondViewController.h"
@implementation SecondViewController
{
NSArray *tableData;
}
@synthesize tableData;
#pragma mark - View lifecycle
- (void)viewDidLoad
{
tableData = [NSArray arrayWithObjects:@"Carter", @"Greene", @"Hancock", @"Hawkins", @"Johnson", @"Sullivan", @"Unicoi", @"Washington", nil];
[super viewDidLoad];
}
#pragma mark - TableView Data Source methods
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section
{
return [tableData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyCell"];
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
return cell;
}
@end
这里是 SecondViewController.h:
#import <UIKit/UIKit.h>
@interface SecondViewController : UIViewController <UITableViewDelegate,
UITableViewDataSource>
@property(nonatomic, retain) NSArray *tableData;
@end
如果这有帮助,这是我的故事板。
如果有人可以帮助我以最轻松的方式为每个表格视图单元格单独添加详细信息,我将不胜感激。谢谢!
【问题讨论】:
-
您可能需要更多地解释您所说的细节是什么意思?当用户点击您的一个单元格时打开详细视图控制器?请详细说明。
-
我使用的是 Swift,所以很遗憾我可能无法在 Obj-C 中为您详细说明,但我可以提供一个高级别的解决方案。你应该创建另一个
UIViewController.....比如说DetailViewController。你可以按照你想要的视觉方式进行设置,然后当用户点击TableViewCell时,对DetailViewController执行segue 并将数据从单元格传递到视图控制器。 -
为什么您认为故事板效率不高?以我的经验,你可以在情节提要中拥有相当数量的对象,并且它们在运行时被拆分并分部分加载,很少有任何运行时问题。另外,你真的有 50 个不同的详情页面,还是它们都是相同的布局,只是内容不同?
-
Meredith,您的 50 个不同的详细信息页面在结构上是不同的,还是它们真的只是相同样式的详细信息页面(或某些有限数量的详细信息页面类型)的不同排列,只是显示不同的详细信息数据?通常你会看到几种类型的细节场景,这只是目标场景中显示什么数据的问题。如果不了解这些细节场景之间变化的本质,就很难回答这个问题。
-
@Rob,每个详细信息页面的格式完全相同。基本上是标题标签、电话号码和邮寄地址
标签: ios objective-c xcode tableviewcell