我创建了一个具有 UITabbarController 的情节提要,一切都运行良好,但现在我想添加一些逻辑来确定特定选项卡栏按钮将显示哪个视图控制器。
示例...如果客户有一个有效的订阅显示视图控制器一,如果没有订阅显示视图控制器二。
这是否可以使用情节提要,我已经查看了 UITabBarDelegate 和 prepareForSegue 但努力拼凑起来?
有没有使用 StoryBoards 做这种事情的例子?
非常感谢
我创建了一个具有 UITabbarController 的情节提要,一切都运行良好,但现在我想添加一些逻辑来确定特定选项卡栏按钮将显示哪个视图控制器。
示例...如果客户有一个有效的订阅显示视图控制器一,如果没有订阅显示视图控制器二。
这是否可以使用情节提要,我已经查看了 UITabBarDelegate 和 prepareForSegue 但努力拼凑起来?
有没有使用 StoryBoards 做这种事情的例子?
非常感谢
你可以这样设置:
if(hasSubscription)
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
ViewController1* subsection = [storyboard instantiateViewControllerWithIdentifier:@"ViewController1"];
ViewController2* subsection1 = [storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];
[(UITabBarController*)self.window.rootViewController setViewControllers:[NSArray arrayWithObjects:subsection,subsection1, nil]];
}
如果您想根据订阅添加 rootviewController,那么soryngod给出的上述答案是一个不错的选择。
但是如果你想在加载 rootviewcontroller 之后打开 viewControllers,那么在 tabBarButton 按下执行以下代码:-
在此代码之前,通过 segues 将您的 viewControllerONE 和 viewControllerTWO 添加到 rootViewController,如下所示:。并在 AttributeInspector 中为每个 segue 指定一个标识符,例如 viewControllerONE 为“one”,viewControllerTWO 为“two”。然后在 tabBarButton 操作中执行以下操作:-
if(subscription)
[self performSegueWithIdentifier:@"one" sender:self];
else
[self performSegueWithIdentifier:@"two" sender:self];