我在LaunchScreen中想要做一些逻辑,如果检查没问题,我想要转到viewController,如果不是,我想转到另一个,那可能吗?
答案 0 :(得分:2)
我在LaunchScreen中想要做一些逻辑
现在我理解了这个问题,我可以回答:不要。稍后做你耗时的逻辑。您的工作是快速启动 。您需要退出applicationDidFinishLaunchingWithOptions
,退出viewDidLoad
,启动。
你在那一点展示的是由你决定的;如果你有耗时的东西(在你的情况下,这听起来像你正在联网或做一些其他的东西,当你加载表的数据源需要时间),你想要显示一个特殊的视图控制器,涵盖时间有旋转活动视图或其他东西,很好。但在实际发布期间不是时候做到这一点。
答案 1 :(得分:0)
你不能为launchScreen.Storyboard
编码,原因是: - 当你的launchScreen.storyboard
显示应用仍在加载时。
简单地说:当您的应用显示launchScreen.storyboard
时无法访问您的应用,您所能做的只是为其执行UI / UX而不执行任何代码。
替代方案: - 制作一个viewController
,它显示为第一个viewController,检查你的逻辑并从那里做相应的事情!
答案 2 :(得分:0)
在didFinishLaunchingWithOptions()
中运行您的支票并使用它直接“跳转”到特定的vc。这是一个使用userDefaults的示例,但当然您可以用正在运行的任何检查替换它。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Do some logic
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let welcomeVC = storyboard.instantiateViewControllerWithIdentifier("WelcomeNavController")
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = welcomeVC
self.window?.makeKeyAndVisible()
}
}
答案 3 :(得分:0)
您的应用加载时会显示您的LaunchScreen。转到AppDelgate
:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
window.rootViewController = //your root view controller that you have figured out with logic
return true
}
答案 4 :(得分:0)
将此功能添加到OpKernelContext* ctx = ...;
const tensorflow::Tensor t = ctx->input(...);
const auto m = Eigen::Map<const Eigen::Matrix<
float, /* scalar element type */
Eigen::Dynamic, /* num_rows is a run-time value */
Eigen::Dynamic, /* num_cols is a run-time value */
Eigen::RowMajor /* tensorflow::Tensor is always row-major */>>(
t.flat<float>().data(), /* ptr to data */
t.dim_size(0), /* num_rows */
t.dim_size(1) /* num_cols */);
:
AppDelegate
在func initialVC(storyboardID: String) {
let mainStoryboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController : UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier("\(storyboardID)") as UIViewController
self.window?.makeKeyAndVisible()
if storyboardID == "tabBarVC" {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = initialViewController
} else {
let navController = UINavigationController(rootViewController: initialViewController)
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = navController
}
}
内的didFinishLaunchingWithOptions
方法中,您可以添加以下内容:
AppDelegate
您可以在我的示例中看到,我要么加载主应用程序VC还是登录VC,具体取决于用户是否已登录。在您的情况下,您可以使用if - else语句并在{ {1}}功能。
注意:当我呼吁加载if currentUser != nil {
initialVC("tabBarVC")
} else {
initialVC("loginVC")
}
时,我必须加载initialVC
,因为loginVC
嵌入在navigationController中。对于navigationController
,我不会嵌入loginVC
,因为它不是必需的。