2017-08-25 57 views
0

我正在使用xamarin.ios。在我看來,我有一個UITableView控件。我在其中選擇一行,然後移動到下一個屏幕。如果我再次回到UITableView屏幕,選定的行不會突出顯示。它會突出顯示一秒,然後自動取消選擇。如果我回到桌面視圖,如何管理它,選中的行應該高亮顯示。如何在多個視圖間移動時選擇行

+0

顯示你已經嘗試過。添加你的代碼。 – PGDev

+0

添加一個bool perpory isSelected模型。在方法RowSelected中設置它,並根據此屬性在GetCell中顯示單元格 –

回答

1

很難說沒有看到任何代碼,但看起來像是在viewDidAppear重新加載tableview。您可能希望將選定的行索引存儲在NSUserDefaults或其他位置,以在視圖加載/外觀之間保留選擇。

確保您將它設置爲 tableview重新加載,以及使用適當的委託方法。同樣,沒有任何代碼看,很難看到 - 和秩序 - 你這樣做,但一個例子(SWIFT):

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
    if indexPath.row == tableView.numberOfRowsInSection(0) - 1 { 
     cell.selected = true 
    } 
} 

或者,你可以在你的數據源設置中選擇屬性直接,然後你可以這樣做:

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
    datasource[indexPath.row].selected == true { 
     cell.selected = true 
    } 
} 

如果你這樣做,那麼每次加載tableview時總是會正確設置選定的行。

(全面披露,我不是一個Xamarin開發,所以我不知道如何將這些從斯威夫特翻譯/的OBJ-C到Xamarin)

+0

是的,它被重新加載它回來。但我有選定的行值。在tableviewcell中,我通過this.Selected = true再次選擇它。行被選中一秒鐘,但然後自動取消選擇。如何在tableview重載的情況下堅持選定的行? – anand

+0

將聲音設置爲選中狀態後,聲音就像重新加載一樣。你在哪個委託方法中將其設置爲選中? – brandonscript

相關問題