0

这是 ProfilTableViewController.m 的表视图委托中我的 If 语句的摘录:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
UITableViewCell *currentCell =(UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
// Navigation logic may go here. Create and push another view controller.
if (currentCell.textLabel.text==@"phrase") {
    MainViewController *phraseViewController =[[MainViewController alloc] initWithNibName:@"mesPhrase" bundle:nil];
    [self.navigationController pushViewController:phraseViewController animated:YES];
}

在情节提要上,我创建了从 ProfilTVC 单元到 MainViewController 的推送,并将 TableViewController 更改为“MainViewController”

当我运行应用程序时,单击 ProfilViewController 中的单元格不会执行任何操作:/ wtf?

干杯,路易斯

4

2 回答 2

1

currentCell.textLabel.text==@"phrase"比较字符串的地址,而不是内容。看isEqualToString:方法。

于 2012-05-30T17:23:28.020 回答
0

现在您所要做的就是使用 prepareFor segue,如下所示:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure we're referring to the correct segue
if ([[segue identifier] isEqualToString:@"yourIdentifier"]) {


   DestinationController *destination = [segue destinationViewController];

    // get the selected index
    NSInteger selectedIndex = [[self.tableView indexPathForSelectedRow] row];
    //now you can add informations you want to send to the new controller
    //example:
    destination.selectedItem=[myArray objectAtIndex:selectedIndex];

 }

}

不要忘记更改 segue 标识符:选择两个控制器之间的连线并将其设置在右侧的属性检查器中,它必须等于 youIdentifier

于 2012-06-01T10:33:24.917 回答