0

scrollviewとして追加したいのですUINavigationBar's titleviewが、不思議なことに追加できません。

ビューでDidLoad:

navController = [[UINavigationController alloc] init];
    self.view.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 20 - 45 - 2);
    CGRect frame = navController.view.frame;
    frame.size.height -= 20;
    [self.view addSubview:navController.view];

    UIScrollView *someview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
    someview.backgroundColor = [UIColor orangeColor];
    navController.navigationItem.titleView = someview;

これは非常に単純なコードですが、何が欠けているのかわかりません。誰か助けてください...ありがとう。

補足:UINavigationController最初の関心事はナビゲーションバーにスクロールビューを追加することなので、ルートコントローラーなしで開始しています。

4

2 に答える 2

0

navController.navigationItem実際にナビゲーション バーに追加されることはありません。nav コントローラが のサブクラスであるため、存在しUIViewControllerます。しかし、それは使用されていません。

ルート ビュー コントローラーをナビゲーション コントローラーに追加し、スクロール ビューをその .xml として追加しますnavigationItem titleView

titleView目的によっては、新しいビュー コントローラーがプッシュされたときにカスタムを挿入するために、ナビゲーション コントローラーをサブクラス化することもできます。

于 2013-08-30T11:51:27.740 に答える
0

スクロール ビューをコンテナ ビューに追加しようとしましたか。このようなもの:

navController = [[UINavigationController alloc] init];
self.view.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 20 - 45 - 2);
CGRect frame = navController.view.frame;
frame.size.height -= 20;
[self.view addSubview:navController.view];

UIView *container = [[UIView alloc] initWithFrame:CGRectMake(...)];
UIScrollView *someview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
someview.backgroundColor = [UIColor orangeColor];
[container addSubview:someview];
navController.navigationItem.titleView = container;
于 2013-08-30T11:48:34.310 に答える