Swift 从委托方法执行对同一ViewController的检查
我正在尝试执行从ViewController a到ViewController a的转换(相同的VC)。我可以在按住ctrl键并将其从一个按钮拖动到VC并设置标识符(在我的例子中为“sameVC”)时实现这一点 点击按钮时,segue按预期工作。问题是,我需要打电话Swift 从委托方法执行对同一ViewController的检查,swift,delegates,Swift,Delegates,我正在尝试执行从ViewController a到ViewController a的转换(相同的VC)。我可以在按住ctrl键并将其从一个按钮拖动到VC并设置标识符(在我的例子中为“sameVC”)时实现这一点 点击按钮时,segue按预期工作。问题是,我需要打电话 self.performSegue(withIdentifier: "sameVC", sender: self) 来自一名代表。因此,当点击按钮时,我需要调用一个函数,该函数有一个委托,如下所示: class ViewContr
self.performSegue(withIdentifier: "sameVC", sender: self)
来自一名代表。因此,当点击按钮时,我需要调用一个函数,该函数有一个委托,如下所示:
class ViewControllerA: ViewController, MyDelegate {
var mC = MyClass()
override func viewDidLoad() {
mC.delegate = self
}
@IBAction func buttonTapped(_ sender: UIButton) {
mC.myfunc()
}
func success {
// Trying to call delegate
self.performSegue(withIdentifies: "sameVC", sender: self)
}
}
protocol MyDelegate {
func success()
}
class MyClass {
var delegate: MyDelegate?
func myfunc() {
// ...
self.delegate.success()
}
}
当代理在“success”-函数中返回ViewControllerA时,我想执行segue,但视图不再出现,因为segue被称为隐式的“buttonTapped”-函数
当segue不在同一个VC中时,我只需按住ctrl键并将其从ViewControllerA拖动到ViewControllerB,但这在只有一个ViewController的情况下是不可能的(或者我不知道如何做到这一点)
有什么方法可以做到这一点吗?与其从按钮按住ctrl键并拖动,不如从ViewController本身按住ctrl键并拖动,然后它将等待您调用
performsgue
如果您有多个要导航到的ViewController,您可以在情节提要中为ViewController分配一个标识符,并使用
情节提要。实例化ViewController WithiIdentifier
方法实例化所需的ViewController并将其呈现给用户,例如,将其推到当前视图控制器的顶部。这仅是可能的,当我有两个视图控制器时,您不能按住ctrl键并拖动到同一个VC。使用情节提要。InstanceEviewcontrollerWithiIdentifier
实例化视图控制器并将其推到当前视图控制器的顶部Hassan Eskandari的作品: