简体   繁体   中英

UISegmentedControl text programmatically

I have created a UISegmentedControl with two segments using the interface builder (from storyboard), but I would like to set the text of the two segments programmatically. I want to do this because I am using NSLocalizedString for all of my buttons, labels, titles etc. I create all the stuff in interface builder and then I add text programmatically. I have manage to make every item to work that way but I cannot find a way to add text to my UISegmentedControl.

Is there any way to do that? I ma trying to use the following but because the segmented control is already created in the interface builder it does not work.

[segmentedControl initWithItems:[NSArray arrayWithObjects:NSLocalizedString(@"Title 1", @"Title 1"),NSLocalizedString(@"Title 2", @"Title 2"), nil]];

Thanks a lot

[segmentedControl setTitle:<YourLocalizedString> forSegmentAtIndex:0];

使用SWIFT 4的人的正确答案是

segmentedControl.setTitle("Your Title", forSegmentAt: 0)

Use setTitle:forSegmentAtIndex: to assign the title to your segments of the segmented control.

Hope this would help you.

Updated :

Use below simple code to set UISegmentControl title programatically;

//.h file:

@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentControl;

// .m file:

- (void)viewDidLoad {

    [super viewDidLoad];

     [self.segmentControl setTitle:@"Love It" forSegmentAtIndex:0];
     [self.segmentControl setTitle:@"Hate It" forSegmentAtIndex:1];        
     [self.segmentControl setTitle:@"Ehh" forSegmentAtIndex:2];
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM