Ios 滚动视图中的循环重置(swift3)

Ios 滚动视图中的循环重置(swift3),ios,swift,loops,uiscrollview,xib,Ios,Swift,Loops,Uiscrollview,Xib,我的代码是一个uiscrolview,有两个页面和一个按钮。问题是,如果我在视图控制器信息(中间图像)上。然后点击按钮返回到scrollview,返回到第1页。因此,无论从信息幻灯片到scrollview的内容是什么,它总是返回到视图控制器1,循环复位。如果我在vc 2上,点击信息按钮转到信息幻灯片。如果我点击信息幻灯片上的按钮,我想返回vc 2。我的代码如下。基本上,循环总是重置,如果可能的话,我想修复它 导入UIKit 类ViewController:UIViewController、

我的代码是一个uiscrolview,有两个页面和一个按钮。问题是,如果我在视图控制器信息(中间图像)上。然后点击按钮返回到scrollview,返回到第1页。因此,无论从信息幻灯片到scrollview的内容是什么,它总是返回到视图控制器1,循环复位。如果我在vc 2上,点击信息按钮转到信息幻灯片。如果我点击信息幻灯片上的按钮,我想返回vc 2。我的代码如下。基本上,循环总是重置,如果可能的话,我想修复它

导入UIKit
类ViewController:UIViewController、UIScrollViewDelegate{
@IBVAR pageControl:UIPageControl!
@IBMOutlet var slideScrollView:UIScrollView!
重写func viewDidLoad(){
super.viewDidLoad()
slideScrollView.delegate=self
让幻灯片:[幻灯片]=创建幻灯片()
设置幻灯片滚动视图(幻灯片:幻灯片)
pageControl.numberOfPages=slides.count
pageControl.currentPage=0
view.bringSubview(toFront:pageControl)
}
覆盖变量prefersStatusBarHidden:Bool{
返回真值
}
func createSlides()->[幻灯片]{
让slide1:slide=Bundle.main.loadNibNamed(“slide”,所有者:self,选项:nil)?。首先是!slide
slide1.label.text=“1”
让slide2:slide=Bundle.main.loadNibNamed(“slide”,所有者:self,选项:nil)?。首先是!slide
slide2.label.text=“2”
返回[幻灯片1,幻灯片2]
}
func设置幻灯片滚动视图(幻灯片:[幻灯片]){
slideScrollView.frame=CGRect(x:0,y:0,宽度:view.frame.width,高度:view.frame.height)
slideScrollView.contentSize=CGSize(宽度:view.frame.width*CGFloat(slides.count),高度:view.frame.height)

对于0中的i.这听起来像是一个
视图将出现
视图将出现
问题,请检查您是否在这些函数中设置了任何内容。

这听起来像是
视图将出现
视图将出现
问题,请检查您是否在这些函数中设置了任何内容。

插入三个大的文本和代码行之间大小的图像?你真的需要让人们看到那样大小的图像吗?添加信息控制器的按钮动作代码。在文本和代码行之间插入三个大图像有什么意义?你真的需要让人们看到那样大小的图像吗?添加信息控制器的按钮动作代码。我不明白这会有什么帮助。当你回到包含scrollView的viewController时,如果你实现了这两个函数,这两个函数将自动调用,因此如果你在其中任何一个函数中生成了任何scrollView代码,那么当你返回时它将被调用是的,我认为最简单的方法是使用nslayout约束和这样,我就不会更改视图控制器。我不明白这会有什么帮助。当您返回到包含scrollView的viewController时,如果您实现了这两个函数,则会自动调用这两个函数,因此,如果您在其中任何一个函数中生成了任何scrollView代码,则返回时会调用这两个函数是的,我认为最简单的方法是使用nslayout约束并使用它们来扩展信息幻灯片。这样我就不会更改视图控制器。
    import UIKit

class ViewController: UIViewController, UIScrollViewDelegate {

@IBOutlet var pageControl: UIPageControl!
@IBOutlet var slideScrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()

    slideScrollView.delegate = self


    let slides:[slide] = createSlides()
    setupSlideScrollView(slides: slides)
    pageControl.numberOfPages = slides.count
    pageControl.currentPage = 0
    view.bringSubview(toFront: pageControl)



}
override var prefersStatusBarHidden: Bool {
    return true
}

func createSlides() -> [slide]{
    let slide1:slide = Bundle.main.loadNibNamed("slide", owner: self, options: nil)?.first as! slide
    slide1.label.text = "1"






    let slide2:slide = Bundle.main.loadNibNamed("slide", owner: self, options: nil)?.first as! slide
    slide2.label.text = "2"






    return [slide1,slide2 ]
}

func setupSlideScrollView(slides:[slide]) {
    slideScrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
    slideScrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height)

    for i in 0..<slides.count{
        slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)
        slideScrollView.addSubview(slides[i])
        slideScrollView.isPagingEnabled = true

    }
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let pageIndex = round(scrollView.contentOffset.x/view.frame.width)
    pageControl.currentPage = Int(pageIndex)

}}