我以編程方式創建了多於5個選項卡(恰好8個子視圖控制器)的UITabBarController。UITabBarControllerDelegate的方法不叫
我的目的是改變標籤的自定義過渡動畫。我設置了一個的UITabBarController委託和實現方法:
- (nullable id <UIViewControllerAnimatedTransitioning>)tabBarController:(UITabBarController *)tabBarController
animationControllerForTransitionFromViewController:(UIViewController *)fromVC
toViewController:(UIViewController *)toVC
當我通過發送選擇標籤:
[tabbarController setSelectedIndex: 6];
委託的方法不叫。
當我發送
[tabbarController setSelectedIndex: 3];
例如,即對於一個可見標籤代表的方法是否正確調用。
再說一句:如果當前選定的視圖控制器位於可見範圍0..3且下一個視圖不在可見範圍內0..3委託的方法仍然被調用。如果當前選擇的視圖控制器超出可視範圍0..3,且下一個視圖超出可視範圍0..3,則不調用該委託的方法。我失去了我的自定義過渡動畫。這是我的問題。
我也試過送
[tabbarController setSelectedViewController: someViewController];
代替
[tabbarController setSelectedIndex: 6];
它不工作。
你確定標籤欄控制器的'delegate'屬性是否已設置? – rmaddy
是的。我設置了委託。當我發送[tabbar setSelectedIndex:3]時,委託的方法被正確調用;例如,對於可見標籤。 – Ragara
多少標籤? 6?這是一個基於0的索引,所以這不應該起作用(儘管它會崩潰)。 – brandonscript