将Watch App启动到中间视图

问题描述 投票:8回答:3

基本上,我的应用程序以页面格式布局,我希望它能够启动到三页的中间。没有办法设置上一页segue,所以我一直在尝试在代码中执行。

我将主视图设置为第一个视图,并且我已经尝试了各种方法在应用程序启动后立即转到中间视图。

这是我尝试的两种方式:

    if segueCheck == true {
        self.pushControllerWithName("budget", context: self)
        self.presentControllerWithName("budget", context: self)
        segueCheck = false
    }

第一个呈现视图,但是作为完全独立的视图,第二个视图用中间视图替换第一个视图。

有谁知道如何启动到中间视图并允许用户向左和向右滑动?

谢谢。

ios swift watchkit apple-watch
3个回答
8
投票

WKInterfaceControllerbecomeCurrentPage()应该是你想要的。

让我们为中心视图控制器CenterPageViewController创建一个新类,并将其initWithContext:方法更改如下

import WatchKit

class CenterPageViewController: WKInterfaceController {

    override init(context: AnyObject?) {
        super.init(context: context)

        super.becomeCurrentPage()        
    }
} 

现在让我们将故事板中间页面的自定义类设置为CenterPageViewController

并最终命中运行。

您将无法摆脱从左侧页面到中间页面的初始转换,但应用程序最终将从中间页面开始。


1
投票

更新Swift 3.0

class CenterPageViewController: WKInterfaceController {

override init (){
    super.init()
    super.becomeCurrentPage()
  }
}

这将有效... !!!

谢谢


0
投票

在watchOS 4及更高版本中执行此操作的新方法是:

WKInterfaceController.reloadRootPageControllers(withNames: 
["Controller1" "Controller2", "Controller3"], 
 contexts: [context1, context2, context3],
 orientation: WKPageOrientation.horizontal,
 pageIndex: 1)

现在,当您想要从中间页开始时,使用becomeCurrentPage()时,您不会得到烦人的动画。

© www.soinside.com 2019 - 2024. All rights reserved.