我正在尝试将单元格从 UITableViewController 链接到 UIViewController,但是每个单元格都必须调用不同的 UIViewController(所以我想我必须为每个视图控制器创建一个链接)而且我不知道如何链接它们通过故事板。
这是我到目前为止所拥有的:
主视图.h
@interface MainView : UITableViewController <UITableViewDelegate, UITableViewDataSource>
{
NSArray *tableData;
}
@property (nonatomic, retain) NSArray *tableData;
@end
主视图.m
- (void)viewDidLoad
{
tableData = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4", nil];
[super viewDidLoad];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [tableData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyCell"];
}
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
UIViewController *anotherVC = nil;
if (indexPath.section == 0) //here I've also tried to use switch, case 0, etc
{
if (indexPath.row == 0)
{
anotherVC = [[ViewForFirstRow alloc] init];
}
NSLog(@"anotherVC %@", anotherVC); // shows that anotherVC = ViewForFirstRow
[anotherVC setModalPresentationStyle:UIModalPresentationFormSheet];
[anotherVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self.navigationController pushViewController:anotherVC animated:YES];
}
}
@end
So, when first row is selected and I didn't link UITableViewController to UIViewController (ViewForFirstRow), it shows a black screen.
如果我将 UITableViewController 链接到 ViewForFirstRow,它会打开视图但没有我在代码中使用的效果[self.navigationController pushViewController:anotherVC animated:YES];
,所以看起来它调用视图是因为链接而不是因为代码[self.navigationController pushViewController:anotherVC animated:YES];
如何通过代码正确调用视图以及我应该在情节提要中使用哪种链接?另外,如何将 UITableViewController 链接到多个 UIViewController(ViewForFirstRow、ViewForSecondRow、ViewForThirdRow 等)。
谢谢!