0

我希望scrollview将 my 添加为UINavigationBar's titleview,但奇怪的是我无法这样做。

在 viewDidLoad 中:

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 = [[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 回答
0

navController.navigationItem从未实际添加到导航栏。它存在是因为导航控制器是UIViewController. 但它没有被使用。

将根视图控制器添加到导航控制器并将滚动视图添加为其navigationItem titleView.

根据您所追求的,您可能还希望将导航控制器子类化以在titleView推送任何新视图控制器时注入您的自定义。

于 2013-08-30T11:51:27.740 回答