2012-08-02 47 views
0

我已經分段XIB中描述的控制(在故事板中),並具有控制器類的引用。我正在嘗試根據語言更改分段控制標題,但我無法更改它。當我記錄我的分段控制時,它說它沒有任何分段,即使我已經在XIB中創建它們或以編程方式創建它們。有人知道什麼是錯的嗎?更改UISegmentedControl,引用標題

代碼:

NSLog(@"segments:%d", [segmentControl numberOfSegments]); 
[segmentControl removeAllSegments]; 
[segmentControl insertSegmentWithTitle:@"stuff" atIndex:0 animated:NO]; 
[segmentControl insertSegmentWithTitle:@"other stuff" atIndex:1 animated:NO]; 
NSLog(@"segments:%d", [segmentControl numberOfSegments]); 

兩個日誌輸出顯示零

+0

Xibs和Storyboards不是一回事。 – 2012-08-02 09:54:14

+0

我知道他們有區別,但這次沒關係 – 2012-08-02 09:55:17

+0

你什麼時候記錄段的數量?你確定控制已經初始化並連接到你的插座嗎? (也就是說,在你的其他日誌語句之前添加'NSLog(@「%@」,segmentControl);' – 2012-08-02 10:01:28

回答

0

我發現這個問題是不是我的代碼,但在故事板本身

我發現,即使我有一個故事板(我用本地化半天飾演),但它在en.Iproj正在取得一團糟(看起來像另一種語言無法達到它)。我把它拿到主文件夾中,現在一切都恢復正常。

0
 

    - (void)loadView 
    { 
      [super loadView]; 
      UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems: 
             [NSArray arrayWithObjects:@"111", @"2222", @"333", nil]]; 
      seg.frame = CGRectMake(0, 0, 300, 50); 
      [seg addTarget:self action:@selector(changed:) forControlEvents:UIControlEventValueChanged]; 
      [self.view addSubview:seg]; 
      [seg release]; 
    } 

    - (void)changed:(UISegmentedControl *)segmentControl 
    { 
      NSLog(@"segments:%d", [segmentControl numberOfSegments]); 
      [segmentControl removeAllSegments]; 
      [segmentControl insertSegmentWithTitle:@"stuff" atIndex:0 animated:NO]; 
      [segmentControl insertSegmentWithTitle:@"other stuff" atIndex:1 animated:NO]; 
      NSLog(@"segments:%d", [segmentControl numberOfSegments]); 
    } 

你的代碼工作正常。