2017-09-09 13 views
0

我使用的Xcode 8迅速3激活塞格斯出的UIViewController側在Xcode 8

我已經建立在一個mainStoryboard SEGUE,從實現代碼如下到另一個視圖控制器。我稱之爲segue segue。我的意思是segue是不同視圖之間的鏈接,比如表格視圖和標準視圖。就像在這個視頻https://www.youtube.com/watch?v=VoRMzCc7yjo中,大約在12分30秒的時間。

然後就可以激活使用賽格瑞(在視圖之間移動):

performSegue(withIdentifier: "segue", sender: self) 

我試圖創建一個函數,所以我可以從UIViewController類以外使用(performSegue(withIdentifier: "segue", sender: self))。該功能看起來是這樣的:

class viewController: UIViewController { 
    public func myFunction() { 
     performSegue(withIdentifier: "segue", sender: self) 
    } 
} 

後來,當我嘗試使用myFunctionUIViewController它不工作,未來與錯誤

"Use of unresolved identifier 'myFunction'".

我意識到,這是因爲myFunction不一個全局函數,它在viewController類中聲明。

我需要能夠激活SEGUE中的viewController類之外,像下面的代碼:

struct QuestionAnswerer { 

    func responseTo() { 

     //This makes all the caracters lower cased. 
     let lowerQuestion = question.lowercased() 

     if lowerQuestion.range(of: "Photos") != nil { 
      myFunction() 
     } else { 
      myOtherFunction() 
     } 
    } 
} 

答案是極大的讚賞

+0

你在哪裏使用'myFunction()'?請顯示代碼 – 3stud1ant3

+0

因此,如果您已經知道您的功能無法從某個對象訪問,爲什麼不能訪問它?現在聽起來您的問題與您的想法完全不同。一步一個腳印 - 例如,如果在你奇怪的設置中,是否可以像你想要的那樣執行myFunction?如果沒有,那麼爲什麼你認爲 - 根據你的頭銜 - 這與賽季有什麼關係? – dfd

+0

你如何使它可訪問? @dfd –

回答

-1

這是一種很難說你想要什麼,因爲我認爲你已經擁有了它。

執行功能的最佳方式之一就是上面所說的。您只需使用以下方法:

struct GlobalFunctions { 
    static func myFunction() { 
     performSegue(withIdentifier: "segue", sender: self) 
    } 
} 

然後調用它,你可以使用:

GlobalFunctions.myFunction() 

編輯:
我認爲這個問題是一個賽格瑞設計從A去B.如果你在C,而你試圖從A去,你會得到一個錯誤。這是一個新想法。從每個視圖控制器,將一個segue連接到目標控制器(B)。稱他們爲 'segueFromA', 'segueFromC' 等
然後將代碼更改爲以下:

struct GlobalFunctions { 
    static func myFunction(from: String) { 
     performSegue(withIdentifier: "segue\(from)", sender: self) 
    } 
} 

如果你從視圖控制器A調用它,你可以使用:

GlobalFunctions.myFunction(from: "A") 

如果從視圖控制器C調用,您可以使用:

GlobalFunctions.myFunction(from: "C") 

等。我希望你的想法:d

+0

當我把它放在我的視圖控制器中時,我得到錯誤:/Users/macbookair/Documents/Swift/ChatBot/encryptionContrller.swift:15:13:實例成員'performSegue'不能用於'UIViewController'類型;你的意思是使用這種類型的值嗎? –