2015-04-06 3 views
0

У меня есть кнопка, pickerview и tableview. Когда я нажимаю кнопку, текущий выбор pickerview будет заполнен в виде таблицы. Вот код кнопки, которая выбрать значение из pickerviewЗаполнять табличное представление с pickerview

- (IBAction)addCourse:(UIButton *)sender { 

    NSInteger numRow=[picker selectedRowInComponent:kNumComponent];//0=1st,1=2nd,etc 
    NSInteger SeaRow=[picker selectedRowInComponent:kSeaComponent];//0=fall,1=spring,2=summer 
    NSInteger CourseRow=[picker selectedRowInComponent:kCourseComponent]; 

    NSString *num=Number[numRow]; 
    NSString *season=Season[SeaRow]; 
    NSString *course=Course[CourseRow]; 

    NSString *msgCourse=[[NSString alloc ]initWithFormat:@"%@ ",course]; 
    NSString *msgSeason=[[NSString alloc ]initWithFormat:@"%@ ",season]; 
    NSString *msgYear=[[NSString alloc ]initWithFormat:@"%@ ",num]; 

} 

Тогда я хочу, чтобы заполнить msgCourse, и т.д., чтобы мой Tableview

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

...Content from above msgCourse and etc 

    return cell; 

} 

Как исправить пробел в моей второй части, пожалуйста? Или любой пример, чтобы посмотреть, пожалуйста?

ответ

1

Проверьте следующий код, чтобы решить, соответствует ли оно вашим требованиям на основе того, что я понимаю из вашего вопроса. Если это не так, пожалуйста, оставьте комментарий, и я постараюсь сделать все возможное, чтобы следить за ним.

Первый шаг:, если вы еще не сделали делегацию через раскадровки, вот первое, что вы должны сделать программно:

-(void)ViewDidLoad 
    { 
    tableView.delegate = self; 
    tableView.datasource = self; 
    } 

Второй шаг: я не видел mutablearray в вашем кода, но я предполагаю, что вы собираетесь создать msgCourse для NSMutableArray.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
// I assume you have only one section 
// Return the number of sections. 
return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 

// Return the number of rows in the section. 
return [self.msgCourse count]; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    UITableViewCell *cell = nil; 
    cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; 

    if(!cell){ 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"]; 
     } 

    cell.textLabel.text=[self.msgCourse objectAtIndex:indexPath.row]; 
    return cell; 
} 

Последний шаг: Кстати, не забудьте добавить следующую строку кода в кнопки действия, чтобы перезагрузить ваш Tableview, я предполагаю, что вы обновить NSMutableArray и хотели бы обновить Tableview.

- (IBAction)addCourse:(UIButton *)sender { 
    ..... 
    ..... 
    ..... 
    [tableView reloadData]; 
} 

Вот хороший учебник, стоит дублировать для обучения: http://www.appcoda.com/ios-programming-tutorial-create-a-simple-table-view-app/

+0

Спасибо большое за ответ. Он сообщает об ошибке на cell.textLabel.text = msgCourse; Я думаю, что msgCourse - локальная переменная? Еще раз спасибо. – user4441082

+0

вы должны сделать это глобальным, конечно. – casillas

+0

Спасибо за ваше терпение. Если мне нужно заполнить несколько сообщений в нескольких строках таблицы, мне нужно что-то исправить? – user4441082

Смежные вопросы