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.navigationController

navigationController のプロパティを設定できない理由については、わかりません。それは私にはOKに見えます。しかし、nib-loader によって呼び出される にプロパティを設定しているためだと思います。viewDidLoad私自身も昔、このような問題を抱えていたことを覚えていると思います。

UIViewControllerサブクラスのメソッドにタイトルなどを設定すれば、そのviewDidLoad心配はなくなると思います。

于 2010-10-11T12:38:40.207 に答える