我正在尝试在Swift中编写一个iOS应用程序,在标签栏屏幕之前会有一个闪屏。
我看过:
但是他们都需要一个nib文件,我在故事板中完成了所有的UI。
这是我的主要问题: 网站上的代码有这样的内容:
ControllerName(nibName: "NibName", bundle: nil);
如果没有nib文件并使用故事板,我有什么方法可以做同样的事情吗?
答案 0 :(得分:1)
假设你已经在故事板中有TabBarController
,你可以在它旁边添加另一个视图控制器。
然后,您将单击新视图,并在属性检查器中,选中"是否为初始视图控制器"。
这使得新视图成为应用程序打开时出现的第一件事。要转到tabBarController,我可能会在第一个视图上有一个按钮,它只有TabBarController
的segue(控制拖动)。
答案 1 :(得分:0)
您可以做的是以下示例,其中标签栏视图控制器被设置为初始viewcontroller,您可以
将另一个UIViewController从对象库拖放到故事板object library。
单击UIViewController并为其指定StoryboardID StoryboardID
在第一个视图控制器类中,您可以访问故事板并创建新视图控制器的实例,之前您使用故事板ID进行拖放,您可以在viewDidAppear覆盖功能中执行此操作以模态方式呈现新的视图控制器。
override func viewDidAppear(animated: Bool) {
let myStoryboard = self.storyboard
let modalViewController = myStoryboard?.instantiateViewControllerWithIdentifier("ModalViewControlllerID")
presentViewController(modalViewController!, animated: true, completion: nil)
}
答案 2 :(得分:0)
要以类似于您使用ControllerName(nibName: "NibName", bundle: nil)
的xib的方式从情节提要中以编程方式实例化viewController,它是:
UIStoryboard(name: "StoryboardName", bundle: nil)
.instantiateViewController(withIdentifier: "ControllerName")
答案 3 :(得分:0)
将navigationController和viewController拖到情节提要中,并使Navigationcontroller成为初始viewcontroller,然后从viewcontroller中推送tabbarcontroller。
谢谢, 纳达·伽玛尔(Nada Gamal)
答案 4 :(得分:0)
我只需要为我的项目做同样的事情。这是我的解决方法。
我创建了一个ViewController并将其设置为Main.storyboard中的Storyboard入口点。我以前有一个带有各种设置的TabViewController,在那里只需要更改1。
TabBarController应该有一个StoryboardID,我将其命名为“ TabBarID”。
我创建了一个新的LaunchViewController swift文件,并将该新ViewController添加到我的Main.storyboard中,并将其分配到Main.storyboard中。
这是该课程。计时器非常简单,一旦超过阈值,便会全屏显示TabBarViewController。
class LaunchViewController: UIViewController {
var timer = Timer()
var time = 0
var threshold = 2
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundTheme(theme: .orangeWhite)
Timer.scheduledTimer(timeInterval: 1, target: self, selector: (#selector(updateTimer)), userInfo: nil, repeats: true)
}
@objc func updateTimer() {
time += 1
if time > threshold {
timer.invalidate()
guard let storyboard = self.storyboard else {
//failed to find storyboard
return
}
let tabBarController = storyboard.instantiateViewController(identifier: "TabBarID")
tabBarController.modalPresentationStyle = .fullScreen
present(tabBarController, animated: true, completion: nil)
}
}
}