如何从viewController2上的按钮对viewController1执行操作?

时间:2015-12-20 09:53:19

标签: ios swift uiscrollview uibutton

所以我有viewcontroller1,我有一个UIScrollview来移动它。我有一个Home按钮,按下时将scrollView移动到所需位置。 那部分工作正常。

import UIKit

class ViewController: UIViewController {

    @IBAction func home(sender: AnyObject) {
        if (scrollView != nil){
            scrollView.scrollRectToVisible(CGRectMake(8, 1004, 359, 496), animated: true)
        }
    }

    @IBOutlet var scrollView2: UIScrollView!
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        if (scrollView2 != nil){
            scrollView2.contentSize.height = 5000
            scrollView2.contentSize.width = 375
        }

        if (ScrollView != nil){
            scrollView.contentSize.height = 5000
            scrollView.contentSize.width = 375
        }

    }

}

我有第二个视图控制器,从第一个视图控制器出现Push segue。此视图控制器还有一个名为UIButton的{​​{1}}。当我单击viewController2中的Home按钮时,我想返回viewController1并在那里执行Home动作以将scrollView定位在viewController1中。

如何在Swift中执行此操作?谢谢!

1 个答案:

答案 0 :(得分:1)

您想在viewController2中按 Home 按钮并返回viewController1并执行一个方法来定位您的scrollView。

您可以使用展开segue 执行此任务。在初始viewController中的home函数正下方,添加一个名为goHome的方法:

@IBAction func home(sender: AnyObject) {
    if (scrollView != nil) {
        scrollView.scrollRectToVisible(CGRectMake(8, 1004, 359, 496), animated: true)
    }
}

@IBAction func goHome(segue: UIStoryboardSegue) {
    // Call the home method to position the scrollView
    home(self)
}

然后在故事板中, Control -drag从viewController2中的 Home 按钮到viewController顶部的Exit图标,然后选择{{ 1}}来自弹出窗口。

drag from home button to exit icon

select goHome from popup

然后当您运行应用程序并在viewController2中按 Home 时,它将展开回到viewController1并调用goHome以将scrollView定位在您想要的位置。