2015-04-23 177 views
0

我有班級viewcontroller。在另一個類中,SigViewController,我有一個捕獲簽名圖像的函數。我想調用viewcontroller類中的函數(具體在IBAction中)。在另一個班級中調用一個班級的功能 - swift

viewcontroller我有以下幾點。

@IBAction func sigsave(sender: AnyObject) { 
    SigViewController().getSignature() 
} 

SigViewController功能是...

func getSignature() ->UIImage { 
    UIGraphicsBeginImageContext(CGSizeMake(self.bounds.size.width, 
     self.bounds.size.height)) 
    self.layer.renderInContext(UIGraphicsGetCurrentContext()) 
    var signature: UIImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    println("saved image") 
    return signature 
} 

viewcontroller將返回未解決的標識符SigViewController的錯誤使用`。

感謝您的任何幫助。

+0

似乎並不是函數'getSignature()'是UIViewController類的一個實例方法。顯示這個函數所在的類。 – Leo

回答

1

getSignature()是一個實例函數,因此您需要製作一個SigViewController類的實例來調用它。如果將函數標記爲類函數,則可以使用語法ClassName.FunctionName()在另一個類中調用類函數。但是當你這樣做時,你無法訪問任何非類級別的實例變量。

正則函數就像Objective-C中的方法,類函數就像+函數一樣。

+0

非常感謝您的評論,但我不認爲我足夠了解swift的足夠關注。我閱讀了一些蘋果文檔,並混淆了一些公共/內部類,但是我所有的努力仍然產生了錯誤。基本上我不確定你的意思是「讓一個SigViewController類的實例調用它」。 –

+0

如果你還沒有遇到類的創建對象,我真的建議看看* Swift編程語言*(https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language /),它是完全免費的,並會帶你通過你需要知道的一切開始!如果你知道自己在做什麼,它會讓你更有效率,而不是亂搞。 – ABakerSmith

相關問題