Obie metody pozwalają mi przedstawić nowy kontroler widoku (jeden przez wywołanie presentviewcontroller), więc nie rozumiem różnicy między tymi dwoma i kiedy powinienem ich używać.Jaka jest różnica między używaniem obiektu instantiateViewControllerWithIdentifier a wykonywaniem identyfikatora?
Odpowiedz
Obie odnoszą się do identyfikatorów powiązanych ze scenorysami. Główna różnica polega na tym, że jeden (performSegueWithIdentifer
) tworzy instancję obiektu w oparciu o koniec segmentu (gdzie wskazuje punkt odsunięcia), podczas gdy drugi (instantiateViewControllerWithIdentifier
) tworzy unikatowy znak VC oparty na identyfikatorze VC (a nie na segmencie).
Możesz mieć wiele segue z tym samym identyfikatorem w różnych miejscach scenorysu, podczas gdy VC w storyboardie nie mogą mieć tego samego identyfikatora.
performSegueWithIdentifer i instantiateViewControllerWithIdentifier oba są stosowane, aby przejść z jednej viewController innemu viewController. Ale jest tak wiele różnic ....
Identyfikator 1st przypadku definiuje segue jak push modal, zwyczajów itp, które są wykorzystywane do wykonywania określonego rodzaju przejścia z jednego do innego VC VC . np.
self.performSegueWithIdentifier("push", sender: self);`
gdzie "push" jest identyfikatorem segmentu push.
Identyfikator 2. przypadku definiuje VC, takie jak myViewController, myTableViewController, myNavigationController itd. 2. funkcja służy do przejścia do konkretnego VC (z identyfikatorem) z VC w storyBoard. np.
gdzie "GameView" jest identyfikatorem GameViewController. Tutaj powstaje instancja GameViewController, a następnie wywoływana jest funkcja presentViewController, aby przejść do instancji vc.
Dla pierwszego przypadku za pomocą identyfikatora segue można przekazać jeden, tym więcej wartości zmiennych do następnego VC. np.
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { if (segue.identifier == "push") { let game = segue.destinationViewController as GameViewController game.value = self.myvalue // *value* is an Int variable of GameViewController class and *myvalue* is an Int variable of recent VC class. } }
Ta funkcja jest również wywoływana, gdy self.performSegueWithIdentifier ("push", nadawca: self); jest wywoływany, aby przekazać wartość do GameViewController.
Ale w 2 przypadku jest to możliwe bezpośrednio jak,
var vc = mainStoryboard.instantiateViewControllerWithIdentifier("GameView") as GameViewController; vc.value = self.myvalue; self.presentViewController(VC, animated: true, completion: nil) ;
- 1. Jaka jest różnica między używaniem aplikacji/csv a tekstem/csv?
- 2. Jaka jest różnica między używaniem IEqualityComparer a korektą Equals/GethashCode?
- 3. Jaka jest różnica między używaniem puli wątków a normalnym wątkiem?
- 4. Różnica między "używaniem" a określaniem zakresu?
- 5. Jaka jest różnica między używaniem Docker Machine a Swarm i używaniem Swarm przez demona Docker?
- 6. Jaka jest różnica między @Inject a @PersistenceContext?
- 7. Jaka jest różnica między Ember.computed.alias a Ember.binding?
- 8. Różnica między używaniem UINavigationController a UINavigationBar
- 9. jaka jest różnica między używaniem ATOMIC_FLAG_INIT i std :: atomic_flag :: wyraźny
- 10. Jaka jest różnica między używaniem MD5.Create i MD5CryptoServiceProvider?
- 11. Jaka jest różnica między $ i $$?
- 12. Jaka jest różnica między cat_id a term_id?
- 13. Jaka jest różnica między IEnumerable a tablicami?
- 14. Jaka jest różnica między == a === w Verilog?
- 15. Jaka jest różnica między UseCase a Workflow?
- 16. Jaka jest różnica między pakietem a intencją?
- 17. Jaka jest różnica między węzłem a wierzchołkiem?
- 18. Jaka jest różnica między alertem a window.alert?
- 19. Jaka jest różnica między @android a android:
- 20. Jaka jest różnica między krotką a kompresją?
- 21. Jaka jest różnica między proxy a reify?
- 22. Jaka jest różnica między sqlite3 a pdo_sqlite
- 23. Jaka jest różnica między Const a Constant?
- 24. Jaka jest różnica między Socket.IO a Firebase?
- 25. Jaka jest różnica między macierzą a tablix?
- 26. Jaka jest różnica między KERN_INVALID_ADDRESS a KERN_PROTECTION_FAILURE?
- 27. Jaka jest różnica między Float.POSITIVE_INFINITY a Float.MAX_VALUE?
- 28. Jaka jest różnica między SGML a XML?
- 29. Jaka jest różnica między Cake a Leiningen?
- 30. Jaka jest różnica między JavaBean a POJO?
instantiateViewControllerWithIdentifier robi to, co sama nazwa mówi; tworzy instancję kontrolera widoku, nic więcej. Nie * przedstawia * kontrolera widoku. – rdelmar
@rdelmar Skierowałem twój komentarz, aby ci to wyjaśnić. – Michael