如何引用 AppDelegate.swift 中的方法?
How do I refer to methods in AppDelegate.swift?
我有一个名为 "Home" 的视图控制器,我想调用其方法之一,称为 myFunction()
。
let home = Home() as! UIViewController
home.myFunction()
这似乎不起作用。为什么?
如果 Home 是您的 rootViewController
那么您可以通过这样做从您的 AppDelegate 方法中调用 animateStuff
方法:
if let viewController = self.window?.rootViewController? as? Home {
viewController.animateStuff()
}
如果 Home
不是你的 rootViewContoller
,那么你必须检查 presentedView
控制器是否 Home
然后调用它的方法:
if let viewController = self.window?.rootViewController.presentedViewController as? Home {
viewController.animateStuff()
}
最后看起来您的 animateStuff 方法应该首先将按钮转换为初始状态
func animateStuff(){
let optionsAnimateStuff = UIViewAnimationOptions.Repeat | UIViewAnimationOptions.Autoreverse | UIViewAnimationOptions.AllowUserInteraction
self.buttonPlay.transform = CGAffineTransformMakeScale(1.0, 1.0)
UIView.animateWithDuration(1.0, delay: 3.0, options:
optionsAnimateStuff, animations: {
self.buttonPlay.transform = CGAffineTransformMakeScale(1.13, 1.13)
}, completion: { finished in
})
}
我有一个名为 "Home" 的视图控制器,我想调用其方法之一,称为 myFunction()
。
let home = Home() as! UIViewController
home.myFunction()
这似乎不起作用。为什么?
如果 Home 是您的 rootViewController
那么您可以通过这样做从您的 AppDelegate 方法中调用 animateStuff
方法:
if let viewController = self.window?.rootViewController? as? Home {
viewController.animateStuff()
}
如果 Home
不是你的 rootViewContoller
,那么你必须检查 presentedView
控制器是否 Home
然后调用它的方法:
if let viewController = self.window?.rootViewController.presentedViewController as? Home {
viewController.animateStuff()
}
最后看起来您的 animateStuff 方法应该首先将按钮转换为初始状态
func animateStuff(){
let optionsAnimateStuff = UIViewAnimationOptions.Repeat | UIViewAnimationOptions.Autoreverse | UIViewAnimationOptions.AllowUserInteraction
self.buttonPlay.transform = CGAffineTransformMakeScale(1.0, 1.0)
UIView.animateWithDuration(1.0, delay: 3.0, options:
optionsAnimateStuff, animations: {
self.buttonPlay.transform = CGAffineTransformMakeScale(1.13, 1.13)
}, completion: { finished in
})
}