2012-08-02 78 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]); 
    } 

你的代码工作正常。