アプリケーションのタブビューにかなりの問題があります。私の問題は、タブバーの途中でカスタム UIButton を使用していて、インデックスを変更するときにdidSelectViewControllerデリゲート メソッドをUITabBarControllerDelegate手動で呼び出していることです。
問題は、選択されているviewControllerを確認したいときに、viewcontrollerの正しいインスタンスを取得していないことです。
コード:
-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
    UIViewController *tempController = [tabBarController.viewControllers objectAtIndex:2];
    if (viewController == [tabBarController.viewControllers objectAtIndex:2]) //Never the same
    {
        [(UINavigationController *)viewController popToRootViewControllerAnimated:NO];
        NSLog(@"Popping to root");
    }
}
そして、私はここでメソッドを呼び出しています:
-(void) notifmethod{
    UIViewController *cameraViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"cameraNavViewController"]; //Tried this
    //CameraNavController *viewController = [[CameraNavController alloc] init];/And this
    [self tabBarController:self didSelectViewController:cameraViewController]; //The call
    NSLog(@"This called");
}
popToRootViewControllerAnimated:NOこれの主な理由は、特定のビューコントローラーが選択されている場合にしたいからです。助けてくれてありがとう!