UINavigationController标题未应用

Pri*_*yat 2 iphone cocoa-touch uikit

我想知道为什么我的UINavigationController不让我设置标题.它允许我改变navigationBar的色调,但我设置的标题和rightBarButtonItem被忽略.为什么?

这是我的代码:

  taps = 0;

  UIView*controllerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

  controllerView.backgroundColor = [UIColor whiteColor];

  controller = [[UIViewController alloc] init];

  [controller setView:controllerView];

  [controllerView release];

  navController = [[UINavigationController alloc] initWithRootViewController:controller];

  navController.navigationBar.barStyle = 1;

  navController.navigationItem.title = @"Setup";

  UIBarButtonItem*item = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonSystemItemDone target:self action:@selector(dismissSetup:)];

  navController.navigationItem.rightBarButtonItem = item;

  [item release];

  [self presentModalViewController:navController animated:YES];

  [mp stop];
Run Code Online (Sandbox Code Playgroud)

ps:我知道我没有发布我分配的一些东西,我以后再这样做!

Tho*_*son 16

set:self.title = @"This is my title";viewController中

(或在您的情况下设置controller.title = @"this is my title";)

  • 最佳答案.接受的答案是tl; tr(太长时间无法阅读) (3认同)

Jos*_*ura 5

导航控制器更新导航栏的中间位置,如下所示:如果新的顶级视图控制器具有自定义标题视图,则导航栏将显示该视图以代替默认标题视图.要指定自定义标题视图,请设置视图控制器导航项的titleView属性.如果未设置自定义标题视图,导航栏将显示包含视图控制器默认标题的标签.此标签的字符串通常从视图控制器本身的title属性中获取.如果要显示与关联的标题不同的标题

视图控制器,改为设置视图控制器导航项的title属性.

您希望UINavigationController根据哪个viewcontroller当前位于顶部来更改其标题.因此,可以采用的方法是在要推入viewControllers数组的viewcontrollers中设置标题.

顺便说一下:我不认为导航控制器应该以模态方式呈现:

因为UINavigationController类继承自UIViewController类,所以导航控制器具有可通过view属性访问的自己的视图.部署导航界面时,必须将此视图安装为要创建的任何视图层次结构的根.例如,如果您要单独部署导航界面,则可以将此视图作为窗口的主要子视图.要在选项卡栏界面中安装导航界面,您可以将导航控制器的视图安装为相应选项卡的根视图.

  • 实际上Apple可以模拟地呈现导航控制器.在View Controller编程指南的"组合视图控制器接口"部分中有一个标题为"以模态方式显示导航控制器"的部分,该部分具体说明了如何执行此操作:http://developer.apple.com/library/ios/# featuredarticles/ViewControllerPGforiPhoneOS /简介/ Introduction.html (5认同)