2017-01-25 1 views
-1

Я хочу изменить текст ярлыков всех ячеек в виде таблицы в ios, нажав на кнопку, которая не является частью таблицы. Я пробовал поиск документации по Интернету, но пока не нашел решения.выберите все строки в таблицах в программном обеспечении iOS с помощью быстрого нажатия на кнопку?

+0

пожалуйста, покажите нам свой код, а также кратко описать вашу проблему. –

ответ

1

В действии кнопки вы должны изменить свой источник данных, а затем вызвать tableView.reloadData(), который перезагрузит таблицу, используя обновленный источник данных.

0

создать источник данных для всех элементов, содержащихся в Tableview, а затем, после изменения его просто перезагрузить все данные ...

, например, у вас есть 3 пунктов:

let item1 = "A" 
let item2 = "B" 
let item3 = "C" 

let tableViewItems = [item1, item2, item3] 

func tableView(cellForRowAtIndexPath..., indexPath ...) { 
    // bind your custom datasource to tableview 
    let cell = ... 
    let item = tableViewItems[indexPath.row] 
    cell.title = item 
} 

Тогда вы» ве получили вашу кнопку действия:

func didPressModifyAllButton() { 
    for item in tableViewItems { 
     // here you can modify your items 
     item = "Modified ..." 
    } 

    tableView.reloadData() 
} 
+0

Я использую это. let totalRows = markAttendanceTable.numberOfRows (inSection: 0) для строки в 0 ..

+0

Проблема в том, что, поскольку она повторно использует ячейки, она дает мне исключение –

0

вариант 1:

Вы должны главный tain array для selectedIndexPath. После нажатия кнопки вы можете добавить весь индексный путь к массиву.

Вариант 2: У вас есть логическая переменная, которая может поддерживаться для отображения выбора в таблицеView.

0

// Привет, попробуйте как этот

func buttonClik(sender: UIButton) { 
    sender.selected = !sender.selected 
     tblView.reloadData() 
} 

set text of label based on button selection as follows 
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    if btn.selected { 
     //give text of label on selection state of button 
    } else { 
     //give text of label on normal state of button 
    } 
} 
+0

Я использую это. let totalRows = markAttendanceTable.numberOfRows (inSection: 0) для строки в 0 ..

+0

Проблема в том, что, поскольку он повторно использует ячейки, он дает мне исключение –

+0

u может получить эту ячейку в ячейке для строки по пути индекса, и вы можете изменить текст метки на основе выбора кнопки –

1

вар IsSelected = ложному

@IBAction func yourButtonAction(sender:UIButton) 
{ 
    isSelected = True 
    tableview.reloadData() 
        
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 
     let cell = tableView.dequeueReusableCellWithIdentifier(“YourCellIdentifier”, forIndexPath: indexPath) as! YourCell 

    if isSelected 
    { 
      // Set your text here 
    } 
    else 
    { 
     // Set default value 
    } 
} 


if you want to change text to previous state when user tap again on button then use. 

@IBAction func yourButtonAction(sender:UIButton) 
{ 
    sender.selected = !sender.selected 
    isSelected = sender.selected 
    tableview.reloadData() 
} 

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

  • Нет связанных вопросов^_^