iOS:从自定义视图移动到标签栏视图控制器

时间:2015-02-13 12:36:15

标签: ios objective-c uiviewcontroller uitabbarcontroller

我在pharmacyviewcontroller点击了一个按钮时出现了一个名为tabbarview的自定义视图。当subview出现sub包含一个按钮时,当我单击该按钮时,它应该导航到第3个TabBarViewController。

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

- (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;

}

2 个答案:

答案 0 :(得分:0)

此方法现在可以完美运行。我已经彻底测试了它。

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

}

确保使用0作为数字1.这应该可以解决问题。

TAB BAR不合适

您是模态呈现的(presentViewController是来自modallyPresentViewController的iOS 6之前的更新代码。模态呈现最初是问题的一部分,推动维护导航的层次结构。

[self.navigationController  pushViewController:secondViewController animated:YES];

在您的代码中,您有一个在更改视图后尝试执行的功能:

self.view.window.rootViewController=secondViewController;

这一行表明您正试图以secondViewController为根。为什么会这样?

答案 1 :(得分:0)

self.view.window.rootViewController=secondViewController;

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