0

我是 iOS 新手,作为学习的一部分,我正在尝试修改 Bart Jacobs 教程中的代码。

我有 3 个视图控制器的层次结构。第一个包含动漫的名称(UITableViewController),第二个 - 所选动漫中的人物姓名(UITableViewController),第三个 - 所选人物的可滚动图片(UIViewController.

第一个控制器的标题设置为:

self.title = @"Anime"

当我在第一个视图控制器中选择动画名称时,它会推动第二个。第二个视图控制器中的后退按钮的名称为“Anime”(这就是我需要的),但没有第二个视图控制器的标题。

当我选择第二个视图控制器中的人时,它会推动第三个,这是新问题:第二个视图控制器中的后退按钮的名称为“后退”,并且没有第三个视图控制器的标题。

我想要的是:1)当前视图控制器(第 2 和第 3 个)中的后退按钮与前一个视图控制器的标题具有相同的名称 2)当前视图控制器的标题具有前一个视图控制器中所选行的名称.

非常感谢任何帮助

谢谢

4

2 回答 2

1

self.title = @"Anime"在你的第一个视图控制器中做。因此,当从这里推送下一个视图控制器时,默认情况下下一个控制器的后退按钮将被赋予“动漫”。但是您错过了为下一个视图控制器设置标题,这就是为什么您得到一个空白标题,因此下一个视图控制器的后退按钮将只有“后退”。

因此,您需要在推送下一个视图控制器之前设置标题,然后标题和后退按钮将按您的预期显示。这是您在推送之前需要设置的方式:

在你的tableView:didSelectRowAtIndexPath

ViewController *viewController2 = [[[ViewController alloc] init] autorelease];
viewController2.title = @"Selected anime name"; //Here you need to take the selected row's name
[self.navigationController pushViewController:viewController2  animated:YES];

希望能帮助到你。

于 2013-11-14T13:46:06.173 回答
0

在 tableView:DidSelectRowAtIndexPath: 中,在将下一个视图推送到导航控制器之前,请执行以下操作:

 nextViewController.title = @"Name of the Anime";

我假设名称在 NSArray 中,因此您可以根据 indexPath.row 设置标题:

NSString *title = [animeNames objectAtIndex:indexPath.row];
nextViewController.title = title;
于 2013-11-14T13:13:37.537 回答