Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何通过viewController2上的按钮在viewController1上执行操作?_Ios_Swift_Uiscrollview_Uibutton - Fatal编程技术网

Ios 如何通过viewController2上的按钮在viewController1上执行操作?

Ios 如何通过viewController2上的按钮在viewController1上执行操作?,ios,swift,uiscrollview,uibutton,Ios,Swift,Uiscrollview,Uibutton,因此,我有viewcontroller1和一个UIScrollview,可以让它移动。我有一个Home按钮,按下该按钮后,滚动视图将移动到所需位置。 那部分很好用 import UIKit class ViewController: UIViewController { @IBAction func home(sender: AnyObject) { if (scrollView != nil){ scrollView.scrollRectTo

因此,我有viewcontroller1和一个
UIScrollview
,可以让它移动。我有一个
Home
按钮,按下该按钮后,滚动视图将移动到所需位置。 那部分很好用

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。此视图控制器还有一个名为
Home
ui按钮。当我单击viewController2中的
Home
按钮时,我想返回viewController1并在那里执行
Home
操作,以在viewController1中定位滚动视图

我怎样才能在斯威夫特做到这一点?谢谢

您希望按下viewController2中的Home按钮,返回viewController1并执行一个方法来定位滚动视图

对于此任务,您可以使用“展开”序列。在初始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)
}
然后在故事板中,控制从viewController2的Home按钮拖动到viewController顶部的
Exit
图标,并从弹出窗口中选择
goHome





然后,当您运行应用程序并在viewController2中按Home键时,它将返回viewController1并调用
Home
,以将滚动视图定位到您想要的位置。

由于视图控制器的结构并不明显,所以不清楚您在问什么-滚动视图与任何事情有什么关系?旁注:变量和方法名称应以驼峰大小写:
scrollView
home
。我将home按钮链接到scrollView,因此当我单击home时,它会转到该位置,但当我将home放在新的ViewController(即ViewController2)中时,我希望它这样,当我点击home时,它会转到ViewController2是初始视图控制器,即ViewController1,然后自动滚动到我放在其中的x、y、w、h。如果您使用的是
uinavigationcontroller
,请调用
popViewControllerAnimated:
-您提供的有关当前设置的信息太少。我将所有信息都放在这里,这足以帮助我吗?基本上,我需要一个按钮,当我按下它时,它将转到另一个ViewController,指向UIScrollViews的Y点。非常感谢,我现在就去练习。我还有一个问题,在ViewController 2中,我有一个“返回”UIButton连接到ViewController 1,这样我就可以返回到它。当我在scrollView上的某个位置时,我是否可以转到viewController2,当我点击back而不是viewController2中设置的UIButtons时,我是否可以回到我离开的原始位置?我知道从viewController1到2的这一部分,但不知道当我从viewController2到1时如何保持在原始位置。谢谢你在另一方面帮助我,我将练习一下你的后退按钮是如何连接的?是导航控制器提供的默认按钮,还是您刚刚添加了一个名为
ui按钮
Back
,该按钮使用按键序列返回VC1?刚刚添加了一个名为ui按钮,该按钮使用按键序列返回VC1您不想使用按键序列返回VC1。推送序列创建VC1的新副本。你想要像我上面展示的那样使用一个放松的阶段。在VC1中创建第二个登陆点
@IBAction func returnHere(segue:UIStoryboardSegue){//now to do here now}
,然后连接
Back
按钮退出图标并选择
returnHere
。然后,当您按
Back
时,您将回到VC1,与您离开时完全相同。