导航栏标题没有设置iPhone

时间:2010-10-11 12:30:07

标签: iphone uinavigationcontroller modalviewcontroller

在我的应用程序中,我提供了一个modalviewcontroller,如下所示,我无法更改导航栏的标题或其任何属性。

fullListTopCompanies *fullListTopCompaniesInstance = [[fullListTopCompanies alloc] initWithNibName:@"fullListTopCompanies" bundle:nil];

UINavigationController *cntrol = [[UINavigationController alloc] initWithRootViewController:fullListTopCompaniesInstance];

[fullListTopCompaniesInstance setTitle:@"TEST"];


UIBarButtonItem *submit = [[UIBarButtonItem alloc]
                           initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                           target:self
                           action:@selector(displayViewForPosts)];
fullListTopCompaniesInstance.navigationItem.rightBarButtonItem = submit;
[submit release];


[self presentModalViewController:cntrol animated:YES];
[cntrol release];

我尝试实例化应用程序委托并将其navigationcontroller分配给本地navigationcontroller实例但没有用。

不知何故导航控制器无法访问。使用“self.navigationitem”无法访问它。每当我使用navigationcontroller呈现modalviewcontroller时,此导航都会出现在实际的navigationcontroller下面。

有人可以帮忙吗?

提前完成。

3 个答案:

答案 0 :(得分:2)

例如,如果您尝试为名为“ABCViewController”的ViewController设置导航栏的标题,则添加

self.Title = @“”;

viewWillAppear ABCViewController的方法中,尝试重建并运行。

希望这会有所帮助。 :)

答案 1 :(得分:0)

  

每当我使用navigationcontroller呈现modalviewcontroller时,此导航都会出现在实际的navigationcontroller下面。

问题是因为在自己上调用presentModalViewController:,你应该在self.navigationController上调用它,导航控制器不会在另一个下方显示。

至于为什么你不能设置navigationController的属性,我不知道。它对我来说很好看。但我希望这是因为你在nib-loader调用 viewDidLoad之前设置属性。我想我很久以前就会记得这样的问题。

你应该在UIViewController子类的viewDidLoad方法中设置标题等,我认为你担心会结束。

答案 2 :(得分:0)

我用xcode模板创建了一个简单的基于视图的应用程序,然后我添加了你的代码,它对我有用......

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

// Override point for customization after application launch.

// Add the view controller's view to the window and display.

TestViewController *fullListTopCompaniesInstance = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];

UINavigationController *cntrol = [[UINavigationController alloc] initWithRootViewController:fullListTopCompaniesInstance];

[fullListTopCompaniesInstance setTitle:@"TEST"];


UIBarButtonItem *submit = [[UIBarButtonItem alloc]
                           initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                           target:self
                           action:@selector(displayViewForPosts)];
fullListTopCompaniesInstance.navigationItem.rightBarButtonItem = submit;

[window addSubview:viewController.view];
[window makeKeyAndVisible];

[viewController presentModalViewController:cntrol animated:YES];

[cntrol release];
[submit release];

return YES;

}