从View Controller通过导航控制器委托给页面控制器

时间:2019-02-04 16:10:47

标签: swift uiviewcontroller uinavigationcontroller uipageviewcontroller delegation

我有一个页面视图控制器,其中包含两个导航控制器,它们都是嵌入视图控制器的。

enter image description here

是否可以将数据直接从视图控制器传递到页面视图控制器。我想使用委派模式,但是我认为那应该先委派给导航控制器,然后再委派给页面视图控制器。有人知道一个不太复杂的解决方案吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为在此处使用协议不是明智的选择,因为您跳得太深了,无法使用通知吗?

您认为应调用委托函数的

NotificationCenter.default.post(name: Notification.Name("yourNotification"), object: your object)

然后在您的pageViewController viewDidLoad中:

NotificationCenter.default.addObserver(self, selector: #selector(yourFuncName), name: NSNotification.Name("yourNotification"), object: nil)

答案 1 :(得分:0)

在“ PageViewController”的viewDidLoad中,添加

- (void)viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(FooBar) name:@"FooBar" object:nil]; 
}

- (void) FooBar { 
NSLog(@"Foo"); 
};

然后从“ ViewController”中调用

[[NSNotificationCenter defaultCenter] postNotificationName:@"FooBar" object:nil];