Starając się realizować rozszerzenie dla UIViewController Zdaję sobie sprawę, że nie jest normalny sposób, albo nie wolno przesłaniać tej funkcji (nawet gdy są one dostępne dla UICollectionViewController i UITableViewController):Rozszerzenie UIViewController nie pozwala na zastąpienie funkcji związanych z widokiem w Swift?
extension UIViewController{
public override func viewWillAppear(){
super.viewWillAppear()
//do some stuff
}
}
Zdaję sobie sprawę, że nie jest normalny sposób, albo nie wolno przesłaniać tej funkcji (nawet gdy są one dostępne dla UICollectionViewController i UITableViewController):
- viewDidLoad
- viewWillLoad
- viewWillAppear
- viewDidAppear
Jest jakiś sposób, żeby to zrobić? Chciałbym mieć tam implementację i pracować dla każdego UIViewController w mojej aplikacji ... Wszystko w jednym miejscu.
Proszę pamiętać, że Nie chcesz, aby nowa klasa instacji UIViewController, zastępując te metody i sprawienie, że mój kontroler przedłużyć go. Jest to oczywiste i najprostsze rozwiązanie, ale to nie satysfakcjonuje tego, co próbuję zrobić.
Używam szybką 1.2 w Xcode 6,3
Czy możesz wyjaśnić trochę, dlaczego chcesz to zrobić? Sądzę, że chodzi o to, że 'viewDidLoad' itd. Istnieje i istnieje dokładnie po to, aby je pominąć, a ponieważ normalnie _nie to je zastępuje (ponieważ to jest dokładnie to, na czym one polegają), co jeszcze chcesz? – matt
Chciałbym mieć tam pewne rzeczy, i dzieje się dla każdego UIViewController na mojej hierarchii. Powiedzmy, chciałbym sprawdzić, na przykład, czy istnieje łączność za każdym razem, gdy przedstawiam UIViewController. Jest to możliwe dla UIViewCollectionController, więc .. dlaczego nie dla UIViewController? –
"Chciałbym sprawdzić, na przykład, czy istnieje łączność za każdym razem, gdy przedstawiam UIViewController" Pozwól mi trochę bardziej naciskać.Dlaczego musisz to robić? Czy nie byłoby bardziej sensowne sprawdzanie, czy istnieje łączność za każdym razem, gdy korzystasz z połączenia? – matt