如何从 TableViewCell 推送新视图?

Posted

技术标签:

【中文标题】如何从 TableViewCell 推送新视图?【英文标题】:How to push new view from TableViewCell? 【发布时间】:2013-03-04 17:04:34 【问题描述】:

在我的应用程序中,我试图从 TableViewCell 导航到新视图,但我不知道如何。你能帮助伙计们吗?我正在使用 Xcode 4.6。和.xib,没有故事板。我对编码很陌生,所以请尽可能简单地解释它!这是我尝试过的,请纠正我:

- (void)viewDidLoad

tableData = [[NSArray alloc] initWithObjects:@"aaoversikt1", @"Paul", @"George", @"Ringo", nil];
[super viewDidLoad];
UILabel *nav_title1 = [[UILabel alloc] initWithFrame:CGRectMake(60, 10, 220, 25)];
nav_title1.font = [UIFont fontWithName:@"Arial-BoldMT" size:18];
nav_title1.textColor = [UIColor whiteColor];
nav_title1.adjustsFontSizeToFitWidth = NO;
nav_title1.textAlignment = NSTextAlignmentCenter;
nav_title1.text = @"Ålesund";
nav_title1.backgroundColor = [UIColor clearColor];
self.navigationItem.titleView = nav_title1;


#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 = nil;

static NSString *CellIdentifier = @"Cell";

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];


cell.textLabel.text = [tableData objectAtIndex:indexPath.row];

return cell;


#pragma mark - TableView Delegate methods

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

AAOversiktViewController *aaoversikt1 = [[AAOversiktViewController alloc] initWithNibName:@"AAOversiktViewController" bundle:nil];
[self.navigationController pushViewController:aaoversikt1 animated:YES];

谢谢!

【问题讨论】:

看起来您已经正确实现了 didSelecdtRowAtIndexPath:。你看到什么问题?请注意,在创建 aaoversikt1 之后,您通常会使用有关所选单元格的信息对其进行配置。 【参考方案1】:

乍一看,我会说问题在于您的 [self.navigationController pushViewController] 方法。您是否在应用程序委托或根视图控制器中启动了应用程序中的导航控制器?

如果不是,我会推荐:

 [self presentViewController:aaoversik1 animated:YES completion:NULL];

如果您想推入导航堆栈以便拥有后退按钮,那么我会考虑实现 UINaviationController。

否则,您可以创建自定义后退按钮并使用本文中相同的方法来呈现根视图控制器(不完全推荐,因为使用 UINavigationController 更简洁)。

如果有任何帮助,请告诉我,T

【讨论】:

以上是关于如何从 TableViewCell 推送新视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何从主视图控制器在详细视图控制器中推送新视图?

TableViewCell 中的 UIImage 推送单元格分隔符

如何从嵌入在视图控制器中的表视图中的集合视图中传递数据并推送新的视图控制器?

如何从自定义 tableviewcell 中的按钮显示弹出视图?

当我选择表格视图单元格时无法推送我的视图控制器

从标签栏应用程序中的表格视图推送新的视图控制器