2016-09-22 2 views
0

На одном ViewController находится отдельно UITableView, UITextField и UIButton. Мне нужно добавить текст UITextField в ячейку таблицы по кнопке. Я установил флаг на нажимной процесса:Добавление в UITableView на UIButton

- (IBAction)addingButon:(id)sender { 

    _addingFlag = true; 

} 

А потом в методе таблицы сделайте следующее:

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

static NSString *cellID = @"dataCell"; 

UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:cellID]; 

while (true) { 

    if (_addingFlag && _textBox.text.length != 0) { 

     cell.textLabel.text = _textBox.text; 

     [tableView reloadData]; 
    } 

    _addingFlag = false; 

    break; 

    return cell; 

} 

данных в таблице отображается только при прокрутке и в странном порядке. Не могли бы вы рассказать, как это исправить. Работая с Objective-C всего пару дней.

ответ

2

tableView:cellForRowAtIndexPath: должен немедленно вернуться. Вместо этого позвоните по телефону [tableView reloadData] в addingButton::

- (IBAction)addingButon:(id)sender { 
    [self.tableView reloadData]; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *cellID = @"dataCell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID]; 

    cell.textLabel.text = _textBox.text; 
    return cell; 
} 
+0

Спасибо! Работает! Но мне нужно нажимать новый текст в других ячейках текстовым полем и сохранять старый текст в предыдущих ячейках одновременно. Как я могу это сделать? – deMasta

+0

Вы должны использовать свойство 'NSArray' и использовать его для хранения старых значений. –

+0

Уже сделано, но в любом случае спасибо за ответ! :) – deMasta