2015-05-09 30 views
0

所以我已經按照這個職位Default Picker Value iphone說,但我似乎無法讓我的選擇器工作。Xcode可可默認選擇器動畫不動畫的iOS應用程序

,這裏是我的.m片段:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    self.arrPercent = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20",@"21",@"22",@"23",@"24",@"25",@"26",@"27",@"28",@"29",@"30",@"31",@"32",@"33",@"34",@"35",@"36",@"37",@"38",@"39",@"40",@"41",@"42",@"43",@"44",@"45",@"46",@"47",@"48",@"49",@"50"]; 
    self.arrPeople = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20"]; 

    self.percent = [NSNumber numberWithInt:15]; 
    self.people = [NSNumber numberWithInt:5]; 
    self.strSubTotal = @""; 

    self.myPicker.dataSource = self; 
    self.myPicker.delegate = self; 
}  
- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    //[self.myPicker selectRow:self.percent.integerValue inComponent:0 animated:YES]; 
    [self.myPicker selectRow:5 inComponent:0 animated:YES]; 
    [self.myPicker selectRow:5 inComponent:1 animated:YES]; 
    [self.myPicker reloadAllComponents]; // tried commenting out this line with no luck 
} 

,這裏是我的.h片段:

#import <UIKit/UIKit.h> 
#import <QuartzCore/QuartzCore.h> 

@interface ViewController : UIViewController <UIPickerViewDataSource,UIPickerViewDelegate> 

@property (nonatomic,strong) NSArray *arrPercent; 
@property (nonatomic,strong) NSArray *arrPeople; 
@property (strong, nonatomic) IBOutlet UIPickerView *myPicker; 
@property (strong, nonatomic) NSString *strSubTotal; 

@property (strong, nonatomic) NSNumber *percent; 
@property (strong, nonatomic) NSNumber *people; 

@end 

這裏的代表的東西,我想......

// returns the number of 'columns' to display. 
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    return 2; 
} 

// returns the # of rows in each component.. 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component 
{ 
    if(component== 0) 
    { 
     return [self.arrPercent count]; 
    } 
    else 
    { 
     return [self.arrPeople count]; 
    } 
} 

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    if(component == 0) 
    { 
     return [NSString stringWithFormat:@"%@%@", [self.arrPercent objectAtIndex:row], @"%"]; 
    } 
    else 
    { 
     return [self.arrPeople objectAtIndex:row]; 
    } 
} 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    if(component == 0) 
    { 
     self.percent = [self.arrPercent objectAtIndex:row]; 
    } 
    else 
    { 
     self.people = [self.arrPeople objectAtIndex:row]; 
    } 
    [self updateSubTotal:-3]; 
} 

當我開始模擬器,選取器不動畫到我告訴它的位置。我做錯了什麼?請幫忙!

+0

你看到了什麼?選取器是否填充? – rdelmar

+0

選取器的委託方法在哪裏?你可以發佈嗎? – Vizllx

+0

我用更多的代碼更新了這個問題。謝謝! –

回答

0

事實證明,錯誤是由於某種原因,UI中的選取器之間的連接與代碼斷開連接。我不得不在按住Ctrl鍵的同時將選擇器從UI拖到.h文件。

我看到這個是因爲我注意到在.h文件中的方法聲明旁邊有一個「空的按鈕圖標」。一旦Xcode瞭解到代碼由代碼控制,一切都按預期工作。

非常感謝!