UINavigationController标题未应用

时间:2010-10-07 15:50:07

标签: 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];

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

2 个答案:

答案 0 :(得分:16)

viewController

中设置self.title = @"This is my title";

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

答案 1 :(得分:5)

  

导航控制器更新   中间的导航栏为   如下:                如果新的顶级视图控制器具有自定义标题视图,   导航栏显示该视图   代替默认的标题视图。   要指定自定义标题视图,请进行设置   视图的titleView属性   控制器的导航项目。                如果未设置自定义标题视图,则导航栏将显示a   包含视图的标签   控制器的默认标题。字符串   通常可以获得此标签   来自视图的title属性   控制器本身。如果你想   显示与该标题不同的标题   与

相关联      

查看控制器,设置标题   视图控制器的属性   改为导航项目。

您希望UINavigationController根据哪个viewcontroller当前位于顶部来更改其标题。所以可以采用的方法是在你正在推送到viewControllers数组的viewcontrollers中设置标题。

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

  

因为UINavigationController   class继承自   UIViewController类,导航   控制器有他们自己的看法   可通过视图访问   属性。部署导航时   界面,您必须安装此视图   作为任何视图层次结构的根   你正在创造。例如,如果你   正在部署导航界面   就你自己而言,你会提出这个观点   窗口的主要子视图。至   在里面安装导航界面   一个标签栏界面,你会安装   导航控制器的视图为   相应选项卡的根视图。