2010-10-11 139 views
1

在我的应用程序中,我提出了一个modalviewcontroller如下,我无法更改导航栏的标题或任何它的属性。导航栏标题没有设置iphone

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”访问。每当我使用导航控制器显示modalviewcontroller时,此导航会在实际的导航控制器下方显示。

任何人都可以请帮忙吗?

Thanx提前。

回答

0

每当我使用导航控制器显示modalviewcontroller时,此导航会出现在实际导航控制器下方。

该问题是因为自我调用presentModalViewController:,你应该把它在self.navigationController这样导航控制器将不会被显示在下面的另一个。

至于你为什么不能设置navigationController的属性,我不知道。它看起来对我很好。但我期望这是因为你在设置属性之前viewDidLoad由nib加载器调用。我想我很久以前就记得自己有过这样的问题。

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

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; 

}

2

例如,如果你是试图为ViewController设置名为“ABCViewController”的导航栏的标题,然后添加

self.Title = @“”;

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

希望这会有所帮助。 :)