我是iOS的新手,作为学习的一部分,我正在尝试修改Bart Jacobs tutorial中的代码。
我有3个viewcontrollers的层次结构。 第一个包含动漫(UITableViewController)的名称,第二个包含来自所选动画(UITableViewController)的人物名称,第三个包含所选人物的可滚动图片(UIViewController。
第一个控制器的标题设置为:
self.title = @"Anime"
当我在第一个视图控制器中选择动画名称时,它会推动第二个。第二个视图控制器中的后退按钮名称为“Anime”(这就是我需要的),但没有第二个视图控制器的标题。
当我选择第二个视图控制器中的人时,它会推动第三个,这是新问题: 第二个视图控制器中的后退按钮名称为“后退”,没有第三个视图控制器的标题。
我想要的是:1)当前视图控制器(第2和第3)中的后部按钮与前一个视图控制器的标题同名2)当前视图控制器的标题具有所选行的名称以前的视图控制器。
任何帮助非常感谢
由于
答案 0 :(得分: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];
希望它有所帮助。
答案 1 :(得分:0)
在tableView中:DidSelectRowAtIndexPath:在将下一个视图推送到导航控制器之前,请执行以下操作:
nextViewController.title = @"Name of the Anime";
我假设名称在NSArray中,因此您可以根据indexPath.row设置标题:
NSString *title = [animeNames objectAtIndex:indexPath.row];
nextViewController.title = title;