iOS:从自定义视图移动到选项卡栏视图控制器

iOS:从自定义视图移动到选项卡栏视图控制器,ios,objective-c,uiviewcontroller,uitabbarcontroller,Ios,Objective C,Uiviewcontroller,Uitabbarcontroller,我有一个名为pharmacyviewcontroller的自定义视图,当单击选项卡视图上的一个按钮时就会出现该视图。当子视图出现时,子视图包含一个按钮,当我单击该按钮时,它应该导航到第三个TabBarViewController 我的问题是,当单击选项卡视图上的按钮时,会显示自定义视图,当我单击自定义视图上的按钮时,它会移动到第三个选项卡栏视图控制器,但选项卡栏按钮和导航栏会消失。我的代码如下所示,用于单击自定义视图按钮以移动到第三个选项卡栏控制器 - (IBAction)phok:(id)se

我有一个名为
pharmacyviewcontroller
的自定义视图,当单击
选项卡视图上的一个按钮时就会出现该视图。当子视图出现时,子视图包含一个按钮,当我单击该按钮时,它应该导航到第三个TabBarViewController

我的问题是,当单击选项卡视图上的按钮时,会显示自定义视图,当我单击自定义视图上的按钮时,它会移动到第三个选项卡栏视图控制器,但选项卡栏按钮和导航栏会消失。我的代码如下所示,用于单击自定义视图按钮以移动到第三个选项卡栏控制器

- (IBAction)phok:(id)sender{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];    
    saveViewController *secondViewController = (saveViewController *) [storyboard instantiateViewControllerWithIdentifier:@"saveview"];
    [self.navigationController  presentViewController:secondViewController animated:YES completion:nil];
    self.view.window.rootViewController=secondViewController;

}

这种方法现在可以很好地工作了。我已经彻底测试过了

- (IBAction)vc1Button:(UIButton *)sender{
    //THIS IS THE ONLY LINE OF CODE NEEDED UNLESS PASSING DATA
    [self.tabBarController setSelectedIndex:0];

}
确保使用0作为数字1。这应该能奏效

选项卡栏不正确

您正在进行模态演示(
presentViewController
是从
modallyPresentViewController
的iOS 6之前版本更新的代码)。模态呈现最初是问题的一部分,推送保持了导航的层次结构

[self.navigationController  pushViewController:secondViewController animated:YES];
在您的代码中,您有一个在更改视图后尝试执行的函数:

self.view.window.rootViewController=secondViewController;
这一行表示您正试图将
secondViewController
作为根。为什么会有这个?

这个

self.view.window.rootViewController=secondViewController;

将用secondViewController替换所有内容,以覆盖选项卡视图。把这条线拿出来,剩下的就行了。根目录不应该是第二个ViewController,它是选项卡视图中的一个部分,而应该是选项卡视图本身。(据我所知,您的布局是)

如果我保留上述行,则视图不会移动到任何位置destination@iosdeveloper所以,如果删除根视图调用,什么都不会发生?出于好奇,为什么要使用这行代码?你有导航控制器和标签栏吗?@iosdeveloper我已经解决了你的问题。我们都错了。请检查更新。