Powrót do XCode 5 i 6 razy, nie zaleca się umieszczania wszystkich kontrolerów widoku w jednej scenorysie, a moje doświadczenie to udowodniło: XCode stał się wolny.
Jaka jest dzisiejsza sytuacja? Czy XCode 9 może to obsłużyć? Czy Apple oficjalnie zaleca umieszczenie wszystkiego w jednej scenariuszu?
Odpowiedzi:
1 dla odpowiedzi № 1Moim zdaniem lepiej podzielić aplikację na moduły lub coś w rodzaju „przepływów”, na przykład zazwyczaj tworzę Onboarding storyboard, który zawiera dane dotyczące logowania / rejestracji lub Ustawienia scenorys zawierający menu ustawień i podmenu (które są kontrolerami widoku). Co więcej, nigdy nie tworzę UITableViewCell lub UICollectionViewCell bezpośrednio w scenorysie, ale tworzę dedykowane .xib plik. Używam tych samych metod @Prashant Tukadiya do obsługi tworzenia instancji kontrolera View i obsługi scenorysów (w bardziej ogólny sposób).
Jaka jest dzisiejsza sytuacja? Czy XCode 9 może to obsłużyć?
Pracowałem nad projektem 1-2 lata temu, który zawiera wszystkie kontrolery widoku w jednej scenorysie, niedawno otworzyłem go w XCode 9 i wciąż jest bardzo powolny.
1 dla odpowiedzi nr 2
Jak chcesz, czasami musisz to zrobić, gdy liczba kontrolerów widoku w głównych scenorysach rośnie, aby podzielić funkcje aplikacji, gdy aplikacja staje się większa, a storyboard otwiera się / zapisuje powoli
1 dla odpowiedzi nr 3
Powinieneś podzielić swoją scenorys pod względem modułów. w przeciwnym razie twój projekt zajmie dużo czasu przy jednej zmianie scenorysu.
Moja sugestia to możesz użyć Storyboard Reference, aby połączyć się przez segue patrz przykład
https://www.raywenderlich.com/115697/ios-9-storyboards-tutorial-whats-new-in-storyboards
a jeśli nie chcesz przechodzić, lepszym rozwiązaniem jest abstrakcyjna praktyka metod w każdym kontrolerze widoku, aby uzyskać dostęp do scenorysu
Tak jak
//--------------------------------------------------------------------------------
// MARK: - Abstract Methods
//--------------------------------------------------------------------------------
public class func viewController () -> LoginVC {
return StoryBoard.main.instantiateViewController(withIdentifier: StoryBoard.controller.LoginVC) as! LoginVC
}
//--------------------------------------------------------------------------------
// Now access it with LoginVC.viewController() and do push or present whatever your operation you requred
Zarządzam wszystkim w stałej teczce
public struct StoryBoard {
static let main = UIStoryboard.init(name: "Main", bundle: nil)
struct controller {
static let LoginVC = "LoginView"
}
}
1 dla odpowiedzi nr 4
Tworzę różne storyboardy dla osób podzielonychjednostki logiczne i przekazywanie do nich odwołań (odwołanie do scenorysu w XCode). Pomaga to w lepszej organizacji. Istnieje również ładna biblioteka o nazwie R.swift na GitHub (patrz https://github.com/mac-cain13/R.swift), takie jak plik z zasobami w systemie Android. Analizuje wszystkie zasoby, takie jak obrazy, stalówki, storyboardy itp. I zmniejsza możliwość popełnienia błędów podczas wywoływania zasobów po nazwie.