导航栏上的分段控制

时间:2011-05-12 18:42:21

标签: iphone uinavigationcontroller

我在视图控制器中添加了一个分段控件。我的viewdidLoad如下所示

 self.navController = [[[UINavigationController alloc] init] autorelease];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:NSLocalizedString(@"Image", @""),
                                                                                   NSLocalizedString(@"Text", @""), nil]];
[segmentedControl setSelectedSegmentIndex:0];
[segmentedControl setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
[segmentedControl setSegmentedControlStyle:UISegmentedControlStyleBar];
segmentedControl.frame = CGRectMake(0, 0, 400, 30);
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    self.navigationItem.titleView = segmentedControl;
[segmentedControl release]; 

[self.view addSubview:self.navController.view];

[super viewDidLoad];

只有导航栏会继续进行,而不会在其中进行任何分段控制。 有人可以帮忙,让我知道这里到底出了什么问题。

1 个答案:

答案 0 :(得分:3)

您的导航控制器开始时没有根视图控制器 - 您正在将分段控件正确设置为视图控制器的标题视图,但您没有为导航控制器提供对该视图控制器的引用。你需要像这样初始化它:

self.navController = [[[UINavigationController alloc] initWithRootViewController:self] autorelease];