【问题标题】:Specifying navigation buttons指定导航按钮
【发布时间】:2011-03-21 09:15:15
【问题描述】:

我正在制作一个基于导航的应用程序,但我注意到我的应用程序存在缺陷。即使我有多个按钮,每个按钮都有自己的标题,无论我按什么按钮,按钮都会引导您进入同一个屏幕。有没有办法确保每个按钮都指向特定于按下按钮的页面。例如单击选项,它会将您带到选项菜单,而不是单击图像,它会将您带到选项菜单。任何帮助将不胜感激谢谢。 这是我的堆栈弹出方法:

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

    Anotherviewcontroller *detailViewController = [[Anotherviewcontroller alloc] initWithNibName:@"Anotherviewcontroller" bundle:nil];

    detailViewController.currentItem = @"Years";

    [self.navigationController pushViewController:detailViewController animated:YES];

    [detailViewController release];

}

【问题讨论】:

  • 请发布 ViewController 代码的“- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {”部分中的代码。

标签: iphone cocoa-touch navigation


【解决方案1】:

您应该使用 indexPath 来确定选择了哪个按钮/单元格,然后,如果有很多,可能使用 switch 语句,创建适当的控制器。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
      if(indexPath.row == 0) {
         Anotherviewcontroller *detailViewController = [[Anotherviewcontroller alloc] initWithNibName:@"Anotherviewcontroller" bundle:nil];
         detailViewController.currentItem = @"Years";
         [self.navigationController pushViewController:detailViewController animated:YES];
         [detailViewController release];

      } else {
         MessageViewController *messageViewController = [[MessageViewController alloc] initWithNibName:@"Messageviewcontroller" bundle:nil];
         [self.navigationController pushViewController:messageViewController animated:YES];
         [messageViewController release];
      }
}

【讨论】:

  • 这真的很有帮助,但我设置了一个花名册类型。我在哪里有 Names>Years>PDFNameList>PDF Document....并且我希望每个名称都指向其特定的 yeas 和 PDF 标题集....这是否意味着我必须为每个名称创建视图控制器?跨度>
  • 不,您必须更改控制器才能使用您的输入:年份和 pdf 等等。然后,您所要做的就是找出当前 indexPath 选择了哪一年/pdf。编写一个类似 - (MyData *)dataForIndexPath(NSIndexPath *)anIndexPath... 的方法,在 didSelectRowAtIndexPath 中调用它并将数据传递给控制器​​。
【解决方案2】:

您可以在创建单元格时将 indexPath.row 设置为每个 btn 的标签,然后在 didSelectRowAtIndexPath 中检查该标签。

【讨论】:

  • 如果我是对的,那么您在单元格中有这些按钮。并且您可以对这些 btn 调用 setTag 函数并为所有 btn 调用一个公共目标,并且在该目标函数中您可以检查按钮标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 2016-03-30
  • 2015-04-01
相关资源
最近更新 更多