私は4つのタブを持つタブバーコントローラーを持っています。ユーザーがタブの1つを選択すると、新しいViewControllerのセットアップを実行します。つまり...[newVC.databaseid = self.datbaseid];
viewdidloadのデリゲートとして、tabviewcontrollerのコントローラーを設定しました。しかし、私は3つの方法を使おうとしましたが、1つだけが起動するようです。
-(void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
発砲しますか、
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
-発火しないようです。これは、新しく提示したVCをセットアップするために使用する必要があるものです。
何が起こるかを確認するために、-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewControllerを使用してみました
そしてそれも起動しないようです(私はNOを返しましたが、違いはなく、NSLog()でログに記録されることもありません)。
これらのメソッドのどれも起動しない場合、デリゲートを間違って設定したと思いますが、1つのメソッドは起動しますが、2つは起動しません。何か案は?
ストーリーボードを使用してタブバーコントローラーを設定しました。
-(void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
NSLog(@"item selected");
//THIS DOES GET LOGGED
}
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"new VC");
//this does not get logged
}
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
return NO;
//this doesnt stop any views being presented
}