设置Backbutton的View Controller名称和标题

时间:2013-11-14 13:07:22

标签: ios objective-c uiviewcontroller uinavigationcontroller

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

我有3个viewcontrollers的层次结构。 第一个包含动漫(UITableViewController)的名称,第二个包含来自所选动画(UITableViewController)的人物名称,第三个包含所选人物的可滚动图片(UIViewController。

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

self.title = @"Anime"

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

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

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

任何帮助非常感谢

由于

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;