在我的iOS應用程序,當我設置的setSelectedIndex它不調用 以下功能設定程式設計的setSelectedIndex不能didSelectViewController
(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
是否有任何替代嗎?
在我的iOS應用程序,當我設置的setSelectedIndex它不調用 以下功能設定程式設計的setSelectedIndex不能didSelectViewController
(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
是否有任何替代嗎?
從UITabBarControllerDelegate documentation:
tabBarController:didSelectViewController:
「[..]它只是響應標籤欄用戶水龍頭打來電話,當你的代碼更改標籤欄內容編程不叫「。
因此,我建議你找到另一種方法來實現所需的功能。
一種選擇是將你擁有的任何邏輯tabBarController:didSelectViewController:
在您的視圖控制器的另一種方法,並調用該方法都在您的UITabBarController實例運行setSelectedIndex
委託方法(上圖),並在你的代碼。
如果需要每當標籤無論它來自水龍頭的變化做出反應,我建議壓倒一切的setSelectedIndex:
-(void)setSelectedIndex:(NSUInteger)selectedIndex
{
[super setSelectedIndex:selectedIndex];
[self handleSelectionChanged];
}
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
[self handleSelectionChanged];
}
- (void)handleSelectionChanged
{
// Do something
}
對不起,我沒有得到完全ü。你可以粘貼示例代碼 – 2012-08-13 10:17:07
不是沒有看到你的問題的上下文。你需要在你的類中創建一個新的方法,當你調用'setSelectedIndex'時調用它,或者直接在你調用'setSelectedIndex'處直接包含任何邏輯。總之'setSelectedIndex'永遠不會觸發'didSelectViewController',也不應該嘗試以編程方式調用該委託方法。您需要考慮替代解決方案。 – jstr 2012-08-13 10:58:37
實施,但我現在崩潰 2012-08-13 16:44:12.979 iOSFileShare [33922:207] ***由於未捕獲異常'NSInternalInconsistencyException',原因終止應用程序:'嘗試開始從< UINavigationController:0x560ba00>到,而轉換已在進行中。等待viewDidAppear/viewDidDisappear知道當前轉換已完成' ***首次調用堆棧: –
2012-08-13 11:25:27