Po prostu mam kontroler widoku nawigacyjnego w mojej aplikacji z tylnym stołem VC i przednim stołem VC. Wybrana komórka w tylnej tabeli VC powinna przenosić się do przedniej tabeli VC (osadzonej w VC nawigacji). Aby zilustrować, tutaj są izolowane ustawienia sprzed zmiany i kod z nią działa poprawnie:Komórka nubi SWRevealViewController nie wykonuje segmentu
Oto uproszczony kod działa w moim stole tylnym VC cellForRowAtIndexPath
metoda:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let navigationCell = tableView.dequeueReusableCellWithIdentifier("NavigationCell", forIndexPath: indexPath) as UITableViewCell
return navigationCell
}
OK, na zabawę. Wszystko, czego chcę, to zastąpienie domyślnej opcji UITableViewCell pokazanej powyżej z jedną z moich niestandardowych komórek w pliku Xib. Teraz zilustruję to, co zmodyfikowałem. Po pierwsze, oto moja komórka Xib w moim pliku NavigationCell.xib
. Nic specjalnego.
My NavigationCell
kod klasy jest po prostu
import UIKit
class NavigationCell: UITableViewCell {
@IBOutlet var nameLabel: UILabel!
}
Wreszcie zmodyfikowany mojego kodu w moim stole tylnym VC zarejestrować XIb i dequeue komórkę niestandardowe:
override func viewDidLoad() {
super.viewDidLoad()
let navigationCellNib = UINib(nibName: "NavigationCell", bundle: nil)
tableView.registerNib(navigationCellNib, forCellReuseIdentifier: "NavigationCell")
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let navigationCell = tableView.dequeueReusableCellWithIdentifier("NavigationCell", forIndexPath: indexPath) as! NavigationCell
return navigationCell
}
Wszystkie pozostałe kody i specyfikacje pozostają bez zmian. Zbiór storyboardów dla nowej niestandardowej komórki nadal znajduje się w klasie SWRevealViewControllerSeguePushController
, jak pokazano na pierwszym zrzucie ekranu dla tego pytania. Po prostu zamieniłem domyślną UITableViewCell z moją niestandardową komórką Xib.
Ta modyfikacja wystarczyła, aby powstrzymać zmianę. Dzięki tej modyfikacji, po zbudowaniu i uruchomieniu, kiedy wysuwam menu nawigacyjne VC z tyłu stołu i wybieram jedną z moich niestandardowych komórek nawigacyjnych (które wyświetlają się prawidłowo), nie powoduje ona żadnej zmiany. jakieś pomysły?
Użyłem wcześniej SWRevealController i to jest trudne. Czy próbowałeś, aby przełącznikiem był setController zamiast pushController? – NSGangster
Zmieniłem go w tę iz powrotem bez skutku. Kiedy stuknę komórkę nawigacyjną, podświetla się ona domyślnie jako jasnoszara i uruchamia metodę 'didSelectRowAtIndexPath', ale to wszystko, na ile to możliwe. – Aaron
Oto samouczek, którego używałem, gdy po raz pierwszy bawiłem się z SWRevealController http://www.appcoda.com/ios-programming-sidebar-navigation-menu/ Masz większość tego ustawienia przejdź do sekcji zatytułowanej realizacji menu wyboru pozycji. Wygląda na to, że potrzebujesz identyfikatora segue i przygotowujesz się do metody "gap". Upewnij się również, że masz właściwe identyfikatory sw_front, sw_rear segue. To jest dobry samouczek. – NSGangster