将Watch App启动到中间视图

时间:2014-11-24 02:28:04

标签: ios swift watchkit apple-watch

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

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

以下是我尝试的两种方式:

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

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

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

感谢。

3 个答案:

答案 0 :(得分:8)

WKInterfaceController' becomeCurrentPage()应该是您正在寻找的内容。

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

import WatchKit

class CenterPageViewController: WKInterfaceController {

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

        super.becomeCurrentPage()        
    }
} 

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

enter image description here

最后点击了。

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

答案 1 :(得分:1)

更新Swift 3.0

class CenterPageViewController: WKInterfaceController {

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

这会有效...... !!!

由于

答案 2 :(得分:0)

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

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

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