Czy ktoś może mi powiedzieć, jak ustawić domyślną kartę podczas używania scenorysów w systemie iOS. Nie potrafię wymyślić, jak to osiągnąć.Ustawianie domyślnej zakładki podczas korzystania ze scenorysów
Dziękuję
Czy ktoś może mi powiedzieć, jak ustawić domyślną kartę podczas używania scenorysów w systemie iOS. Nie potrafię wymyślić, jak to osiągnąć.Ustawianie domyślnej zakładki podczas korzystania ze scenorysów
Dziękuję
Można użyć jednej z tych dwóch metod:
tabBar.items = tabBarItems;
tabBar.selectedItem = [tabBarItems objectAtIndex:0];
lub bezpośredni sposób z obiektu
[tabBar setSelectedItem:myUITabBarItem];
lub można je połączyć, aby to zrobić:
tabBar.items = tabBarItems;
[tabBar setSelectedItem:[tabBarItems objectAtIndex:0]];
ale nie testowałem jeszcze tej metody, mam nadzieję, że to pomoże!
Jak mogę utworzyć właściwość wyjściową dla kontrolera karty? Proszę dać mi znać, ponieważ jestem nowy w storybooku –
tak, osobiście zasysam na story boarding, mogę wysłać ci kod, jeśli chcesz? –
Pozwól mi spróbować znaleźć dokładny kod i umieścić go na pastebin, w przeciwnym razie źle zip to i na mojej stronie internetowej –
Poniższy kod pracował dla mnie:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
tabBarController.selectedIndex = 2;
Ten kod zakłada, że rootViewController to tabBarController. Co nie zawsze musi być prawdą. – oyalhi
UITabBarController
;Dodaj to pod koniec viewDidLoad
:
self.selectedIndex = 1;
ustawić ten nowy plik jako niestandardową klasę w UITabBarController
swojej Storyboard.
Skończyłeś.
Świetne rozwiązanie działa idealnie! – sabir
Chociaż można ustawić początkowy wybraną kartę programowo jak inne odpowiedzi, aby osiągnąć to samo w serii ujęć bez kodu dotykając byś wykonać następujące czynności:
to powinno być, jak to wygląda, kiedy już osiągnąć powyższe kroki:
To się nie powiedzie w Xcode 6.3, iOS 8. – friedbunny
To nadal działa dla mnie na Xcode 6.3.1, iOS 8.3 - jakiekolwiek dalsze szczegóły dotyczące problemu, który masz Jason? –
Prawdopodobnie dziwactwo na moim końcu w tej sprawie; to jest awaria w '_NSSetUsingKeyValueSetter': http://pastie.org/10185899 – friedbunny
może wydawać się przesadą niektóre podklasy UITabBarController
, ale myślę, że zapewnia najczystsze s olution.
BaseTabBarController.swift
Dodaj @IBInspectable
i ustawić go w viewDidLoad
:
class BaseTabBarController: UITabBarController {
@IBInspectable var defaultIndex: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
selectedIndex = defaultIndex
}
}
W serii ujęć, ustaw Ci UITabBarController
być twoja nowa podklasa:
Właściwie to fantastyczne rozwiązanie do ponownego wykorzystania i wystarczająco elastyczne, aby umożliwić zarządzanie kodem, jeśli jest to wymagane. – brandonscript
Fantastyczne rozwiązanie @Aiel. Dziękuję Ci. – iamyogish
Annnd BOOM! Nie ma dynamitu - zadziałało (Xcode 7.3.1). Dzięki – Jeeves
w appdelegate znaleźć applicationDidBecomeActive
funkcji i dodać ten linie
let tabBarController = self.window?.rootViewController as! UITabBarController
tabBarController.selectedIndex = 0 // any index you want
W viewDidLoad()
z TabBarController
ustaw selectedIndex
aby cokolwiek chcesz (0
byłby pierwszym, 3
byłby czwarty , itp.)
Możesz to osiągnąć poprzez Xcode 8 lub nowszy (po prostu przetestowany i nie wiesz czy jest dostępny przed tą wersją)
Wykonaj kroki @Joshua Finch powiedział jednak:
"xcode 8 lub wcześniej": czy naprawdę miałeś na myśli "przed"? Wydaje się zaprzeczać następującemu zdaniu, "nie wiem, czy jest dostępne przed tą wersją". Może miałeś na myśli "8 lub więcej"? –
Opierając Awi'el Grossa odpowiedź, ja j ust chciał wdrożyć to dla UITabBar, w przeciwieństwie do UITabBarController. Można to zrobić w następujący sposób:
class BaseTabBar: UITabBar {
@IBInspectable var defaultIndex: Int = 0 {
didSet {
self.selectedItem = self.items?[defaultIndex]
}
}
}
co masz na myśli domyślnie tab? Czy używasz tabBarController i próbujesz wybrać pierwszą kartę po uruchomieniu aplikacji? –
Upewnij się, że twoje pytanie ma charakter opisowy i popraw swój zaakceptowany kurs. –
Stworzyłem aplikację z kartami, używając tablic ogłoszeń i chcę ustawić ją tak, aby druga karta była wybierana podczas uruchamiania aplikacji. – user1145581