在导航栏

在导航栏

问题描述:

我加入我的看法controller.My的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]; 

只有在导航栏上保持内部没有任何分段控制未来。 有人可以帮助,让我知道这里到底是什么错误。

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

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

我收到“EXC_BAD_ACCESS”当我尝试做so.basically我有标签栏作为我的主控制器和里面我想其中一个选项卡已在分段控制导航栏。是否有其他事情我需要做才能正常工作。 – agupta 2011-05-12 19:18:58

+0

有一种嵌套顺序可以设置。您将视图控制器放置在导航控制器“内部”(作为其根视图控制器),然后将导航控制器添加到标签栏控制器。然后,您需要坚持引用的是您自己的视图控制器和标签栏控制器。 – 2011-05-12 19:42:28