我正在尝试创建基于页面的WatchKit应用。当应用程序加载时,我想要一个带有图像的页面和一个分页视图中的按钮,并且滑动应该在一组图像之间切换。
我试过WKInterfaceController.reloadRootControllersWithNames(["home", "home", "home", "home", "home"], contexts: ["1", "2", "3", "4", "5"])
,其中home
是InterfaceController的标识符。我从另一个InterfaceController调用此方法,这是最初的接口控制器。我得到了基于页面的视图,但初始视图是空白的。
import WatchKit
import Foundation
class InterfaceController: WKInterfaceController {
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
WKInterfaceController.reloadRootControllersWithNames(["home", "home", "home", "home", "home"], contexts: ["1", "2", "3", "4", "5"])
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
}
reloadRootControllersWithNames
方法创建基于页面的应用程序?
AppDelegate
,而不是故事板中的箭头?答案 0 :(得分:2)
仅回答问题1:
我几乎使用了你在这里使用的技术创建了一个基于页面的应用程序,除了我调用了WKInterfaceController.reloadRootControllersWithNames() 来自willActivate()函数,而不是awakeWithContext()函数。不确定这是否重要。
我假设“home”是不同WKInterfaceController的标识符?如果您尝试将启动接口控制器用作分页接口控制器,我认为它不会正常工作。这可能是你问题的根源。
但是,只有在页面数量可变的情况下,才需要以编程方式指定页面的方法。如果您在构建时知道页面布局,可以将它们全部放在故事板中,然后按一个控件拖动另一个,选择“下一页”关系。
如果您使用故事板,可以将起始接口控制器作为第一个页面,然后后续接口控制器可以使用相同的类。
答案 1 :(得分:0)
#2和#3的答案很简单:你不能,至少不是当前版本的WatchKit。