2011-07-13 32 views
15

UISearchBar ve UITableView'ı yöneten bir UIViewController var. Birden çok UIViewControler uygulamasının uygulamanızın bir kısmını yöneten Apple'ın cesaretini okudum. Bu yüzden UITableView'u yönetmek için UITableViewController kullanmamıştım. Bunun yerine, kendi UIViewController'ımda UITableViewDelegate ve UITableViewDataSource protokolünü uyguladık.Nasıl temizler değiştirilirSelectionOnViewWill UITableViewController kullanılmadığında ne olur?

Sorunuz, artık UITableViewController kullanmadığım için, clearsSelectionOnViewWillAppear davranışını nasıl değiştirebilirim? Bu özellik UITableViewController'ın bir parçasıdır.

cevap

40

Basitçe viewWillAppear: yönteminde

[myTableView deselectRowAtIndexPath:[myTableView indexPathForSelectedRow] animated:YES]; 

arayarak.

+1

Okay:

İşte benim için çalıştı Swift 3.2 Kod bulunuyor. Bu yüzden, davranışı kendim el ile kopyalamak zorundayım. Bu biraz zor, özellikle UITableViewController'ın sağladığı başka bir şey varsa bunu başarmak daha zor. – pixelfreak

+0

Bunu didSelectRowAtIndexPath dizinine koydum ve satırın seçimini kaldırmak için çalıştı. tableView.deselectRowAtIndexPath (indexPath, canlandırılmış: true) ' – Robert

4

Büyük olasılıkla viewWillAppear:animated yöntemini geçersiz kılıyor ve [super viewWillAppear:animated] aramasını kaçırıyorsunuz.

İşte Swift kod
4

: Varsayılan olarak

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 
    if let indexPath = tableView.indexPathForSelectedRow() { 
     tableView.deselectRowAtIndexPath(indexPath, animated: true) 
    } 
} 
-2

, seçilen satır denetleyiciye dönen seçili kalır. ViewWillAppear'da satırın seçimini kaldırmak için bir komut ekleyerek, ekrana geri dönerken hiçbir satırın seçilemeyeceğinden emin olabilirsiniz. Seni anlıyorum,

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    if let indexPath = myTable.indexPathForSelectedRow { 
     myTable.deselectRow(at: indexPath, animated: true) 
    } 
} 
+0

neden işe yaradığı konusunda daha fazla ayrıntı eklemek güzel olurdu. – gdbj

+0

@gdbj Yayını düzenledim, herhangi bir sorunuz olursa lütfen bize bildirin. – bb90

+1

Cevabınız Darko's'a nasıl farklı? – gdbj

İlgili konular