使用 presentViewController 转到 BWWalkthroughViewController 中的特定视图
Go to Specific view in BWWalkthroughViewController using presentViewController
我正在使用 BBWalkthrough (https://github.com/ariok/BWWalkthrough),我想直接从 presentViewController
转换转到 BWWalkthroughViewController 的 UIScrollView 中的特定页面。
我该怎么做?请注意,我没有使用 segues,因为 viewController 在不同的故事板中。
如果我对 BBWalkthroughViewController 实例 walk
的子 VC 执行 presentViewController()
那么它显示正常,但您不能滚动离开该视图(即您在视图中但没有滚动功能,因为它与其他视图没有任何联系)。
func instantiateControllers(){
// Get view controllers and build the walkthrough
let stb = UIStoryboard(name: "Walkthrough", bundle: nil)
let walkthrough = stb.instantiateViewControllerWithIdentifier("walk") as! BWWalkthroughViewController
let page_A = stb.instantiateViewControllerWithIdentifier("walkA") as! UIViewController
let page_B = stb.instantiateViewControllerWithIdentifier("walkB") as! UIViewController
let page_C = stb.instantiateViewControllerWithIdentifier("walkC")as! UIViewController
let page_D = stb.instantiateViewControllerWithIdentifier("walkD")as! UIViewController
let page_E = stb.instantiateViewControllerWithIdentifier("walkE")as! UIViewController
let page_outro = stb.instantiateViewControllerWithIdentifier("walkOUT")as! UIViewController
// Attach the pages to the master
walkthrough.delegate = self
walkthrough.addViewController(page_A)
walkthrough.addViewController(page_B)
walkthrough.addViewController(page_C)
walkthrough.addViewController(page_D)
walkthrough.addViewController(page_E)
walkthrough.addViewController(page_outro)
self.presentViewController(walkthrough, animated: true, completion: nil)
}
我只调用 walkthrough
的 @IBAction func nextPage()
方法所需的次数。它相当于模拟用户页面点击完成动画,这是一个错误或一个功能。
或者,或者只是破解代码源——这就是开源的意义所在。 :-) 只需将 gotoPage()
函数设置为非私有函数,然后从上面的代码中调用一次即可。设计使该功能私有化是没有充分理由的。
无论哪种情况,我相信您都必须作为完成处理程序的一部分这样做。
示例:
// Assuming you've removed 'private' from the gotoPage() function
self.presentViewController(walkthrough, animated: true) { walkthrough.gotoPage(3) }
或:
self.presentViewController(walkthrough, animated: true) {
for _ in 0..<3 {
walkthrough.nextPage()
}
}
我正在使用 BBWalkthrough (https://github.com/ariok/BWWalkthrough),我想直接从 presentViewController
转换转到 BWWalkthroughViewController 的 UIScrollView 中的特定页面。
我该怎么做?请注意,我没有使用 segues,因为 viewController 在不同的故事板中。
如果我对 BBWalkthroughViewController 实例 walk
的子 VC 执行 presentViewController()
那么它显示正常,但您不能滚动离开该视图(即您在视图中但没有滚动功能,因为它与其他视图没有任何联系)。
func instantiateControllers(){
// Get view controllers and build the walkthrough
let stb = UIStoryboard(name: "Walkthrough", bundle: nil)
let walkthrough = stb.instantiateViewControllerWithIdentifier("walk") as! BWWalkthroughViewController
let page_A = stb.instantiateViewControllerWithIdentifier("walkA") as! UIViewController
let page_B = stb.instantiateViewControllerWithIdentifier("walkB") as! UIViewController
let page_C = stb.instantiateViewControllerWithIdentifier("walkC")as! UIViewController
let page_D = stb.instantiateViewControllerWithIdentifier("walkD")as! UIViewController
let page_E = stb.instantiateViewControllerWithIdentifier("walkE")as! UIViewController
let page_outro = stb.instantiateViewControllerWithIdentifier("walkOUT")as! UIViewController
// Attach the pages to the master
walkthrough.delegate = self
walkthrough.addViewController(page_A)
walkthrough.addViewController(page_B)
walkthrough.addViewController(page_C)
walkthrough.addViewController(page_D)
walkthrough.addViewController(page_E)
walkthrough.addViewController(page_outro)
self.presentViewController(walkthrough, animated: true, completion: nil)
}
我只调用 walkthrough
的 @IBAction func nextPage()
方法所需的次数。它相当于模拟用户页面点击完成动画,这是一个错误或一个功能。
或者,或者只是破解代码源——这就是开源的意义所在。 :-) 只需将 gotoPage()
函数设置为非私有函数,然后从上面的代码中调用一次即可。设计使该功能私有化是没有充分理由的。
无论哪种情况,我相信您都必须作为完成处理程序的一部分这样做。
示例:
// Assuming you've removed 'private' from the gotoPage() function
self.presentViewController(walkthrough, animated: true) { walkthrough.gotoPage(3) }
或:
self.presentViewController(walkthrough, animated: true) {
for _ in 0..<3 {
walkthrough.nextPage()
}
}