2013-04-25 47 views
0

我正在嘗試使用數組加載段控件。當我這樣做時,選擇Male作爲默認值。我不想選擇男性或女性,都選擇爲默認值。使段的默認值未選中

- (id)initWithAnimal:(ITAnimal *)Animal isEdit:(BOOL)isEdit 
{ 
self = [super init]; 
if (self) { 
    // Custom initialization 
    _Animal = Animal; 
    _genders = [NSArray arrayWithObjects:@"Male", @"Female", nil]; 
    if (!_Animal) { 
     _Animal = [[ITData sharedObject] managedObjectFromName:@"ITAnimal"]; 
     _Animal.gender = [_genders objectAtIndex:0]; 

    } 
    _isEdit = isEdit; 

    // gender controll 
    self.genderControl = [[UISegmentedControl alloc] initWithItems:_genders]; 
    [self.genderControl addTarget:self action:@selector(genderChanged:) forControlEvents:UIControlEventAllEvents]; 
    } 
    return self; 
} 





} 
else if (indexPath.row == 2) { 
    BOOL isIn = NO; 
    for (id view in cell.contentView.subviews) { 
     if ([view isEqual:self.genderControl]) isIn = YES; 
    } 
    if (!isIn) [cell.contentView addSubview:self.genderControl]; 

    [cell.detailTextLabel setHidden:_isEdit]; 
    [self.genderControl setSelectedSegmentIndex:[_genders indexOfObject:content]]; 

    [self.genderControl setHidden:!_isEdit]; 
} 

回答

3

你應該使用:

[self.genderControl setSelectedSegmentIndex:UISegmentedControlNoSegment]; 

From Apple's doc:

默認值是UISegmentedControlNoSegment(不選片段) 直到使用r觸及一個細分。將此屬性設置爲-1以關閉當前選擇的 。 當 控件處於瞬時模式時,UISegmentedControl將忽略此屬性。

+0

我上面的'[self.genderControl setSelectedSegmentIndex:[_性別indexOfObject:內容];' – Steve 2013-04-25 15:04:28

+0

請解釋這個問題,因爲你編輯的代碼不解釋 – 2013-04-25 15:05:49

+0

通過添加'[self.genderControl setSelectedSegmentIndex: - 1];進入isEdit狀態,但是,每次我重新編輯它時,它都會返回到Unselected並且 – Steve 2013-04-25 15:08:51

1

您正在尋找

[segmentcontrol setSelectedSegmentIndex:-1];