2011-08-23 35 views
4

我有一個應用程序,我在其中動態分配5 UISegmentedControl到視圖中。最後得到一個完成按鈕。我的條件是進入下一步(按完成按鈕時),所有UISegmentControl s「應由用戶選擇」。如何檢查用戶是否選擇了UISegmentedControl?

segmentcontrol中的默認選擇是none。 如何檢查我的視圖中的所有UISegmentedControls是否在執行done按鈕之前由用戶選擇?

+0

一次只能選擇其中一個段,您的意思是**我的視圖中的所有uisegmentedcontrol是由用戶選擇的**?你的意思是**我所看到的所有uisegmentedcontrol都是由用戶選擇的? –

+0

可以選擇一個選項.ok.but但我有5個uisegmentedcontrol在我的視圖中檢查是否全部都是在最終完成按鈕按下之前選中的? –

回答

10

從一蘋果文檔,這應該回答你的問題:

@property(nonatomic) NSInteger selectedSegmentIndex 

討論 默認值是UISegmentedControlNoSegment(不選擇段),直到用戶觸摸段。

希望你可以使用它來檢查值是否是用戶選擇,以防止轉到下一頁。

0

將目標和操作添加到您的segmentControls for UIControlEventValueChanged。 從您在動作中選擇的選擇器中,檢查哪個segmentControl已更改,並將其設置爲相應的標誌(例如,未選中時爲@「0」且一旦選擇時爲@「1」的字符串數組)。

在任何時候檢查哪些標誌未設置,相應的segmentControls從未被選中。

0

這是如何ü創建一個UISegmentedControl

NSArray *itemArray = [NSArray arrayWithObjects: @"Title1", @"Title2", @"Title3", @"Title4",nil]; 
segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray]; 
segmentedControl.frame = CGRectMake(0, 0, 310, 35); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.selectedSegmentIndex = 0; 
[segmentedControl addTarget:self action:@selector(pickOne:) forControlEvents:UIControlEventValueChanged]; 
segmentedControl.tintColor=[UIColor grayColor]; 

然後找到選中了哪個段,

NSString *category =[segmentedControl titleForSegmentAtIndex: [segmentedControl selectedSegmentIndex]]; 

if([email protected]"Title1"){ 
    //Do something here.. 
} 

希望這有助於....快樂編碼

+0

代碼的第二部分必須寫入名爲 - (void)pickOne:(id)sender ....(這是根據上面的代碼..) – booleanBoy

+0

謝謝..但我怎麼知道所有segmentcontrols被選中? –

+0

選擇所有細分控件的意思是......用戶一次只能選擇一個...... – booleanBoy

5
NSLog(@"%i", self.segment.selectedSegmentIndex); 

這結果-1如果沒有選擇分段。

相關問題