Ios 如何使用Swift中的协议和委托将变量从UIViewController传递回根导航控制器
正如您在所附的图像中看到的,我有一个名为-Notifications的根导航控制器和一个名为NotificationsController的UIViewController 所以我的问题是如何使用协议和委托将变量从NotificationsController传递回通知,因为在这种情况下,它们之间没有segue,只有默认关系 我的问题是否正确,或者是否有其他方法来满足我的需求Ios 如何使用Swift中的协议和委托将变量从UIViewController传递回根导航控制器,ios,swift,Ios,Swift,正如您在所附的图像中看到的,我有一个名为-Notifications的根导航控制器和一个名为NotificationsController的UIViewController 所以我的问题是如何使用协议和委托将变量从NotificationsController传递回通知,因为在这种情况下,它们之间没有segue,只有默认关系 我的问题是否正确,或者是否有其他方法来满足我的需求 非常感谢从视图控制器引用导航控制器的任何帮助(这是可选的,因此您需要处理): 要从导航控制器引用视图控制器,请执行以下操
非常感谢从视图控制器引用导航控制器的任何帮助(这是可选的,因此您需要处理): 要从导航控制器引用视图控制器,请执行以下操作:
// self is a UINavigationController
let index = // Index of the view controller. You may need to iterate over viewControllers to find this.
self.viewControllers[index]
您实际上不需要设置代理。正如keithbhunter在回答中指出的,视图控制器具有navigationController属性,该属性将指向管理它的导航控制器 我建议您为要发送到导航控制器的消息定义一个协议,然后让UINavigationController的自定义子类符合该协议 在导航控制器堆栈上的视图控制器中,可以获取指向导航控制器的指针,并将其强制转换为type
UINavigationController
(符合myNavControllerProtocol的UINavigationController。这些天我在Objective-C工作,不记得确切的语法。)
// self is a UINavigationController
let index = // Index of the view controller. You may need to iterate over viewControllers to find this.
self.viewControllers[index]