【问题标题】:Xcode UITabBarController: Make Two tabs point to same ViewControllerXcode UITabBarController:使两个选项卡指向同一个 ViewController
【发布时间】:2015-09-17 16:55:10
【问题描述】:

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

我正在尝试添加选项卡控件。一个选项卡将列出当前票房电影,第二个选项卡列出最近在 DVD 上的电影。两个视图完全相同,只是它们从不同的 api 端点获取数据。我想使用 UITabBarController 来实现这个功能。但我不想创建两个重复的 Viewcontroller,而是将一个用于这两个目的。使用情节提要和代码的正确方法是什么。

【问题讨论】:

    标签: ios xcode swift


    【解决方案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];
    

    【讨论】:

    • 我目前有一个 ViewController.swift 类,并且我已将 swift 类与我使用情节提要创建的 viewController 相关联。根据您的方法,我应该删除情节提要控制器并仅使用代码来定义我的视图控制器吗?
    • 没关系。您仍然可以遵循上述方法。通过ViewController.swift 控制视图内的内容,并按照我所说的通过代码实例化它们。但是,从情节提要中实例化 VC 会有不同的语法。
    猜你喜欢
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    相关资源
    最近更新 更多