2011-05-12 230 views
4

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

只有在導航欄上保持內部沒有任何分段控制未來。 有人可以幫助,讓我知道這裏到底是什麼錯誤。

回答

3

您的導航控制器開始時沒有根視圖控制器 - 您將分段控件正確設置爲視圖控制器的標題視圖,但您沒有爲導航控制器提供對該視圖控制器的引用。您需要初始化它:

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