激活塞格斯出的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)
}
}
后来,当我尝试使用myFunction
外UIViewController
它不工作,未来与错误
"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()
}
}
}
答案是极大的赞赏
这是一种很难说你想要什么,因为我认为你已经拥有了它。
执行功能的最佳方式之一就是上面所说的。您只需使用以下方法:
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
当我把它放在我的视图控制器中时,我得到错误:/Users/macbookair/Documents/Swift/ChatBot/encryptionContrller.swift:15:13:实例成员'performSegue'不能用于'UIViewController'类型;你的意思是使用这种类型的值吗? –
你在哪里使用'myFunction()'?请显示代码 – 3stud1ant3
因此,如果您已经知道您的功能无法从某个对象访问,为什么不能访问它?现在听起来您的问题与您的想法完全不同。一步一个脚印 - 例如,如果在你奇怪的设置中,是否可以像你想要的那样执行myFunction?如果没有,那么为什么你认为 - 根据你的头衔 - 这与赛季有什么关系? – dfd
你如何使它可访问? @dfd –