Swift:为 CustomTab 重用一个 ViewController

Posted

技术标签:

【中文标题】Swift:为 CustomTab 重用一个 ViewController【英文标题】:Swift: Reusing one ViewController For a CustomTab 【发布时间】:2017-05-29 16:14:09 【问题描述】:

我需要帮助,我有在 ViewControllers 之间切换的库调用 CarbonKit,它的行为方式与 android 上的选项卡相同,我现在遇到的问题是选项卡的数量或要使用的 viewController 将是动态的,它可以是两个、三个或四个,viewControllers 里面只有一个 tableView,我如何创建一个 viewController 并将其重用于所有选项卡。 这是我需要使用逻辑的地方。

lazy var firstChildTabVC: UIViewController? = 
    let firstChildTabVC = self.storyboard?.instantiateViewController(withIdentifier: "RecentVC")
    return firstChildTabVC
()
lazy var secondChildTabVC: UIViewController? = 
    let secondChildTabVC = self.storyboard?.instantiateViewController(withIdentifier: "RecentVC")
    return secondChildTabVC
()
lazy var thirdChildTabVC : UIViewController? = 
    let thirdChildTabVC = self.storyboard?.instantiateViewController(withIdentifier: "RecentVC")
    return thirdChildTabVC
()

extension TrendVC: CarbonTabSwipeNavigationDelegate

    func carbonTabSwipeNavigation(_ carbonTabSwipeNavigation: CarbonTabSwipeNavigation, viewControllerAt index: UInt) -> UIViewController 
    var vc: UIViewController?
    switch index 
    case TabIndex.firstChildTab.rawValue :
        vc = firstChildTabVC
    case TabIndex.secondChildTab.rawValue :
        vc = secondChildTabVC
    case TabIndex.thirdChildTab.rawValue :
        vc = thirdChildTabVC
    default:
        return UIViewController()
    

    return vc!
   

【问题讨论】:

【参考方案1】:

您可以根据需要创建任意数量的选项卡。 但是想想 iphone 5 或 6 或 7 个用户。如果您的标签数量超过 5,他们如何点击您的标签?

我认为比告诉你创建多个标签的解决方案非常重要。

【讨论】:

其实我创建的标签和Android上的一样,不是底部标签。 ios 中没有功能。你需要自定义老兄。 :( 我已经编辑了我的问题以显示我想要做什么。

以上是关于Swift:为 CustomTab 重用一个 ViewController的主要内容,如果未能解决你的问题,请参考以下文章

使用 SDWebImage 为 UICollectionView 可重用单元从路径加载图像 - Swift

UICollectionView 单元可重用性问题 - swift

为不同的表视图创建可重用的页脚视图(Swift 5)

Swift collectionView 不可重用单元格

如何使用自动布局在 Swift 中为可重用的 UIView 设置约束?

Chrome CustomTab 错误:java.lang.NoSuchMethodError:没有静态方法 startActivity