如何直接移动到第三个选项卡iPhone中添加为子视图的视图

如何直接移动到第三个选项卡iPhone中添加为子视图的视图,iphone,objective-c,uitabbarcontroller,tabbar,Iphone,Objective C,Uitabbarcontroller,Tabbar,首先,我为标题感到抱歉。事实上,我不知道如何给这个场景一个合适的标题 我有一个登录视图。身份验证成功后,下一个视图是一个带有四个选项卡的选项卡栏视图。我创建了以下视图: UIViewController *firstTab = [[SAHomeView_iPad alloc]initWithNibName:@"SAHomeview_iPad" bundle:nil]; firstTab.tabBarItem.image = [UIImage imageNamed:@"Home.

首先,我为标题感到抱歉。事实上,我不知道如何给这个场景一个合适的标题

我有一个登录视图。身份验证成功后,下一个视图是一个带有四个选项卡的选项卡栏视图。我创建了以下视图:

UIViewController *firstTab = [[SAHomeView_iPad alloc]initWithNibName:@"SAHomeview_iPad" bundle:nil];
         firstTab.tabBarItem.image = [UIImage imageNamed:@"Home.png"];
         UIViewController *secondTab = [[SAMenuView_iPad alloc]initWithNibName:@"SAMenuView_iPad" bundle:nil];
         secondTab.tabBarItem.image = [UIImage imageNamed:@"Menu.png"];
         UIViewController *thirdTab = [[SAGraphView_iPad alloc]initWithNibName:@"SAGraphView_iPad" bundle:nil];
         thirdTab.tabBarItem.image = [UIImage imageNamed:@"Graph.png"];
         UIViewController *fourthTab = [[SAAboutView_iPad alloc]initWithNibName:@"SAAboutView_iPad" bundle:nil];
         fourthTab.tabBarItem.image = [UIImage imageNamed:@"info.png"];
         UITabBarController *tabBarController = [[UITabBarController alloc] init];
         tabBarController.viewControllers = [NSArray arrayWithObjects:firstTab, secondTab,thirdTab,fourthTab, nil];
         SAAppDelegate *delegate = [UIApplication sharedApplication].delegate;
         delegate.window.rootViewController = tabBarController;
现在在第三个选项卡中,我添加了一个日历按钮,按下该按钮将显示一个日历视图。我在第三个选项卡中将此日历视图添加为子视图

现在,一旦用户登录,主页选项卡中将有一个日历按钮。 一旦用户点击日历按钮,他应该移动到日历视图。 此日历视图实际上是作为第三个选项卡中的子视图添加的

有人能帮我解决这个问题吗。 非常感谢


我建议您将日历视图从第三个选项卡视图层次结构中移除,并将其分配给自己的自定义viewController,以便它可以与应用程序中的任何其他viewController显示相同的状态

然后,您可以使用模式故事板序列调用日历,或在代码中使用:

[self presentViewController:calendarViewController animation:YES completion:NIL];
并驳回:

[self.presentingViewController dismissModalViewControllerAnimated:YES];

当您呈现它时,您将丢失选项卡控制器上下文,因为您希望返回呈现它的视图。当您关闭它时,您可以通过选项卡栏上下文返回演示视图。

朋友们,我终于这样做了。感谢您的帮助。希望这对您也有帮助。:)


现在的问题是,我希望在第一个选项卡中有一个日历按钮,当用户点击此按钮时,他/她将直接移动到日历视图(即,在第三个选项卡中作为子视图添加的日历视图)。我不能清楚地理解您的问题,请详细解释您的意思是跳到第三个选项卡还是将日历视图显示为模式视图?如果需要跳过第三个选项卡,请尝试:[self.tabBarController setSelectedIndex:2]@jessex我可以直接加载日历视图吗?如第三张图片所示,使用我们的演示。@suji不,该视图只能有一个superview。您需要使用两个视图,但共享同一数据库。是否有任何方法可以加载视图而不显示该视图,
- (IBAction)moveToCalendar:(id)sender {
    self.tabBarController.delegate = self;
    self.tabBarController.selectedIndex = 2;
    [(SAGraphView_iPad *)self.tabBarController.selectedViewController calendar:self];
}