2015-02-10 18 views
14

chỉ cần tự hỏi làm thế nào tôi sẽ đi về việc thực hiện didSelectRowAtIndexPath hoặc một cái gì đó tương tự như trong ứng dụng của tôi. Tôi có Chế độ xem Bảng được điền với một số ô động và về cơ bản tôi muốn thay đổi Chế độ xem khi một ô nhất định được chọn.Làm thế nào để phát hiện lựa chọn Cell trong UITableView - Swift

Tôi có thể làm quen với nó trong Obj-C, nhưng không có gì trên google để giúp tôi với Swift! Mọi trợ giúp sẽ được đánh giá cao vì tôi vẫn đang tìm hiểu

Trả lời

27

Bạn có thể sử dụng didSelectRowAtIndexPath trong Swift.

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) { 
    NSLog("You selected cell number: \(indexPath.row)!") 
    self.performSegueWithIdentifier("yourIdentifier", sender: self) 
} 

Đối Swift 3 nó

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    NSLog("You selected cell number: \(indexPath.row)!") 
    self.performSegueWithIdentifier("yourIdentifier", sender: self) 
} 

Chỉ cần chắc chắn rằng bạn thực hiện UITableViewDelegate.

+0

Thankyou rất nhiều! Google đã không ở tất cả, tôi đã dành lứa tuổi tìm kiếm và chỉ cần cố gắng lâu dài cho bản thân mình ... Điều này trình bày cho tôi với một vấn đề khác mặc dù. Làm cách nào để đảm bảo mỗi ô riêng lẻ thực hiện một khoảng cách khác nhau? – Alex

+0

Kiểm tra indexPath.row. Nó cung cấp cho bạn số lượng hàng. Sau đó, bạn có thể sử dụng if-else. – Christian

+0

Tuyệt vời! Cảm ơn bạn đã giúp đỡ, tôi cuối cùng cũng bắt đầu hiểu Swift hơn một chút bây giờ :) – Alex

2

Đây là cách tôi quản lý để phân biệt từ các ô UITableView cho các bộ điều khiển chế độ xem khác sau khi triển khai cellForRow, numberOfRowsInSection & numberOfSectionsInTable.

//to grab a row, update your did select row at index path method to: 

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    NSLog("You selected cell number: \(indexPath.row)!"); 

    if indexPath.row == 1 { 
     //THE SEGUE 
     self.performSegue(withIdentifier: "goToMainUI", sender: self) 
    } 
} 

Will đầu ra: You selected cell number: \(indexPath.row)!

Ghi để phù hợp với nhận dạng của segue của bạn trong bảng câu chuyện để nhận dạng trong các chức năng, ví dụ goToMainUI.

Các vấn đề liên quan