【问题标题】:Initial view controller and Tab View Controller初始视图控制器和选项卡视图控制器
【发布时间】:2016-07-25 19:39:58
【问题描述】:

我正在使用单视图应用程序,但在一种情况下我也在使用选项卡视图控制器,但选项卡视图控制器必须作为初始视图控制器工作,所以我如何在不使用选项卡视图控制器的情况下使用它作为初始视图控制器?

【问题讨论】:

  • 您需要一个导航控制器或自定义视图控制器作为选项卡的根视图控制器。您的选项卡视图控制器不需要是初始视图控制器。是什么阻止您使用标签视图控制器?
  • 我正在使用普通视图控制器启动应用程序,然后当单击一个按钮时,我移动到选项卡视图控制器,当我使用选项卡视图控制器而不将其作为初始视图控制器时,应用程序显示白屏我在底部没有标签栏,但是当它作为初始视图控制器时,它会正常显示
  • 能贴出代码sn-p吗?
  • 所有事情都是通过布局而不是通过代码完成的,我将只用标签视图的图片更新我的帖子
  • 将tabViewController设置为初始视图控制器有什么问题?

标签: ios swift2 xcode7


【解决方案1】:

@SamahAhmed

let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
let diallerTBC = storyboard.instantiateViewControllerWithIdentifier("tabBarStoryboardId") as! MyTabbarController

//create a variable for e.g : data at MyTabbarController and set like

diallerTBC.data = "testing"

【讨论】:

  • 但是我没有用于选项卡控制器视图的 swift 文件,我只有三个选项卡的三个文件,当我将这个变量放在这些文件中并尝试通过当前视图从逻辑上告诉我选项卡控制器视图没有此变量,我可以在其中创建此变量以从所有选项卡到达它?
  • 只需为您的tabar控制器创建一个自定义类并在该类中创建一个变量
【解决方案2】:

当你点击按钮移动标签栏控制器时

为标签栏提供故事板 ID 并使用以下代码

将此作为类方法写入 appdelegate 并在单击按钮时调用它

        let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
        let diallerTBC = storyboard.instantiateViewControllerWithIdentifier("tabBarStoryboardId") as! UITabBarController

        self.window?.rootViewController = diallerTBC
        self.window?.makeKeyAndVisible()
    }

我希望这会奏效

谢谢

【讨论】:

  • 使用这段代码,我们正在改变根视图控制器,所以如果我们想回到包含按钮的VC,那么我们再次需要改变根视图控制器!
  • 当您单击下一步按钮时,只需呈现/推送不带动画的 tabbarcontroller 即可完成更多操作。
  • @ChandanPrajapati 我会写最后两行,因为我已经写了前两行以转到 Tab 活动
  • @ChandanPrajapati 感谢您的注意,该错误仅由这一行解决 let vc = storyboard.instantiateViewControllerWithIdentifier("tabMessagesVC") as! UITabBarController 我的错误是因为我写的是 UIViewController 而不是 UITabBarController 我不需要最后两行
  • @ChandanPrajapati 在这种情况下,如何将变量从当前视图控制器发送到选项卡视图控制器以在所有选项卡中使用此变量?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多