---
title: "init(selection:sortOrder:columns:rows:)"
framework: swiftui
role: symbol
role_heading: Initializer
path: "swiftui/table/init(selection:sortorder:columns:rows:)"
---

# init(selection:sortOrder:columns:rows:)

Creates a sortable table with the given columns and rows that supports selecting multiple rows.

## Declaration

```swift
nonisolated init<Sort>(selection: Binding<Set<Value.ID>>, sortOrder: Binding<[Sort]>, @TableColumnBuilder<Value, Sort> columns: () -> Columns, @TableRowBuilder<Value> rows: () -> Rows) where Sort : SortComparator, Columns.TableRowValue == Sort.Compared
```

## Parameters

- `selection`: A binding to a set that identifies selected rows ids.
- `sortOrder`: A binding to the ordered sorting of columns.
- `columns`: The columns to display in the table.
- `rows`: The rows to display in the table.

## See Also

### Creating a sortable table from columns and rows

- [init(of:sortOrder:columns:rows:)](swiftui/table/init(of:sortorder:columns:rows:).md)
- [init(of:selection:sortOrder:columns:rows:)](swiftui/table/init(of:selection:sortorder:columns:rows:).md)
- [init(sortOrder:columns:rows:)](swiftui/table/init(sortorder:columns:rows:).md)
