当在FirstViewController中按下按钮时,我希望它在另一个类(SecondViewController)中调用func pressedButton()。我该怎么做?
我尝试了以下操作,但它无法正常工作:
SecondViewController().pressedButton()
这是pressedButton的代码:
func pressLearnButton() {
let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenWidth = screenSize.width
self.scrollView.setContentOffset(CGPoint(x: screenWidth, y: 0), animated: true)
}
答案 0 :(得分:4)
从语法上讲,您似乎正在尝试完成静态方法通常所做的事情。除非这是你想要完成的,并且我猜测it's not,你需要在调用它上面的方法之前实例化你的SecondViewController,将它分配给一个变量,然后调用你想要的方法如下:
let otherViewController: SecondViewController = SecondViewController()
let result = otherViewController.doSomething()
如果您在单击按钮时尝试转换(segue)到另一个视图控制器,则应使用prepareForSegue()
method转换到下一个视图控制器。另外,不要忘记在故事板上设置segue标识符。
希望这很有帮助。
答案 1 :(得分:1)
首先,您必须在FirstViewController中保留对SecondViewController实例的引用。然后,为了从FirstViewController调用SecondViewController中的函数foo()
,只需调用secondInstance.foo()
。如果foo()是类函数,则可以使用SecondViewController.foo().
class A : UIViewController {
var myB = B()
func callBFoo() {
myB.foo()
}
func callStaticBFoo() {
B.staticFoo()
}
}
class B : UIViewController {
func foo() {
println("foo")
}
class func staticFoo() {
println("static foo")
}
}
答案 2 :(得分:0)
你真的称之为。但是,在您的情况下,它取决于许多因素。似乎它必须通过调用pressedButton方法显示任何内容。 需要声明控制器的变量,将其视图添加到当前控制器的视图中,您将看到可视化数据。