Xcode UITabBarController:使两个选项卡指向同一个ViewController

时间:2015-09-17 08:37:05

标签: ios xcode swift

我构建了一个简单的应用程序来查看烂番茄的电影列表(作为学习ios开发的一部分)https://raw.githubusercontent.com/koldkoder/movie_listing/master/rotten_tomatoes.gif

我正在尝试添加标签控件。一个标签列出当前的票房电影,第二个标签列出最近在DVD上列出的电影。两个视图完全相同,只是从不同的api端点获取数据。我想使用UITabBarController来实现此功能。但我不想创建两个重复的Viewcontrollers,而是使用一个用于此目的。使用故事板和代码的正确方法是什么。

1 个答案:

答案 0 :(得分:1)

这很简单。创建一个UIViewController,在初始化程序中获取视图类型参数,如下所示:

typedef NS_ENUM (NSInteger, MediaViewType) {
    MediaViewTypeBoxOffice = 0,
    MediaViewTypeDVD
};

- (id)initWithViewType:(MediaViewType)iViewType;

在实施文件中,处理您的视图&基于传递的视图类型的功能。然后将视图控制器的实例添加到UITabBarController

MyMediaViewController *vc1 = [MyMediaViewController alloc] initWithViewType: MediaViewTypeBoxOffice];
MyMediaViewController *vc2 = [MyMediaViewController alloc] initWithViewType: MediaViewTypeDVD];

self.tabBarController.viewControllers = @[vc1, vc2];