UISegmentedControl setImage:或setText:not working

时间:2012-01-21 19:30:24

标签: objective-c ios cocoa-touch

我在xib中的视图中都有一个UISegmentedControl。在我的app委托中,我使用initWithNibName创建控制器,该控制器是xib的文件所有者:然后将其包装在导航控制器中(UINavigationController initWithRootViewController)。

然后我尝试在分段控件中设置元素的图像或标题,如下所示:

[self.viewController.segmentControl setImage: [UIImage imageNamed:@"some_image.png"]forSegmentAtIndex: 3];
[self.viewController.segmentControl setTitle: @"some text" forSegmentAtIndex: 2];

分段控件出现但setImage:和setTitle:没有效果。 前两个单元格分别表示First和Second,它们是最初在IB中拖放它时分配的默认值。

segmentControl是一个IBOutlet,我已经确认它已连接到分段控件。

为什么不起作用?

我可以在IB中设置图像或文本并且它可以工作,但我想了解为什么我不能以编程方式设置它们。

(分段控件有6个索引)。

2 个答案:

答案 0 :(得分:0)

为什么要在应用代理中设置分段控件?你不应该在文件的所有者(viewController)中调整它的属性吗?我可能会在viewController的viewDidLoad方法中执行此操作,或者因为您无论如何都使用IB,只需在那里设置图像和标题属性(在您的XIB中)。

答案 1 :(得分:0)

使用此代码

[segmentControl setImage: [UIImage imageNamed:@"some_image.png"]forSegmentAtIndex: 3];
[segmentControl setTitle: @"some text" forSegmentAtIndex: 2];