激活塞格斯出的UIViewController侧在Xcode 8

问题描述:

我使用的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 –

这是一种很难说你想要什么,因为我认为你已经拥有了它。

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

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'类型;你的意思是使用这种类型的值吗? –