1

在我的应用程序中,我按如下方式展示了一个 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];

我尝试实例化应用程序委托并将其导航控制器分配给本地导航控制器实例,但没有用。

不知何故,导航控制器无法访问。无法使用“self.navigationitem”访问它。每当我将 modalviewcontroller 与导航控制器一起呈现时,此导航都位于实际导航控制器的下方。

4

3 回答 3

2

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

self.Title = @"";

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

希望这可以帮助。:)

于 2010-11-07T10:33:59.750 回答
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;

}

于 2010-10-11T14:47:10.600 回答
0

每当我将 modalviewcontroller 与导航控制器一起呈现时,此导航都位于实际导航控制器的下方。

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

至于为什么不能设置navigationController的属性,我不知道。在我看来还可以。但我希望这是因为您在 nib-loader 调用之前设置了属性。 viewDidLoad我想我记得很久以前我自己也遇到过这样的问题。

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

于 2010-10-11T12:38:40.207 回答