我想知道为什么我的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:我知道我没有发布我分配的一些东西,我以后再这样做了!
答案 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类,导航 控制器有他们自己的看法 可通过视图访问 属性。部署导航时 界面,您必须安装此视图 作为任何视图层次结构的根 你正在创造。例如,如果你 正在部署导航界面 就你自己而言,你会提出这个观点 窗口的主要子视图。至 在里面安装导航界面 一个标签栏界面,你会安装 导航控制器的视图为 相应选项卡的根视图。