UIViewConroller(控制器)间关系

来源:互联网 发布:淘宝怎么看旺旺号 编辑:程序博客网 时间:2024/06/07 22:32
 presentModalViewController:animated:The presentViewController:animated:completion: method is the preferred way to present a modal view as of iOS 5.0.

程序示例:(Context:self是嵌入在UINavigationController中的子控制器,


 //////////////////////////// Demo1 //////////////////////////////    UIViewController *vc = [[MyController alloc] init];    [self presentViewController:vc animated:YES completion:NULL];    NSLog(@"%@", self.presentedViewController); //MyController    NSLog(@"%@", self.presentingViewController);    NSLog(@"%@", self.parentViewController); //UINavigationController        NSLog(@"%@", vc.presentedViewController);    NSLog(@"%@", vc.presentingViewController); //UINavigationController    NSLog(@"%@", vc.parentViewController);//////////////////////////// Demo1 //////////////////////////////    UIViewController *vc = [[MyController alloc] init];[self.navigationController pushViewController:vc animated:YES];        NSLog(@"%@", self.presentedViewController);     NSLog(@"%@", self.presentingViewController);    NSLog(@"%@", self.parentViewController); //UINavigationController        NSLog(@"%@", vc.presentedViewController);    NSLog(@"%@", vc.presentingViewController);     NSLog(@"%@", vc.parentViewController);//UINavigationController

可见,控制器之间的关系有两种:

1.parent & child(父子,如,控制器容器UINavigationController和它的子控制器的关系

2.presented &presenting (被呈现者,呈现者,就是被弹出的控制器和弹出这个控制器的控制器之间的关系)

注意:

由示例所示:如果一个控制器被一个在另一个控制器容器中的控制器弹出的时候,那么它的presenting ViewController就是那个控制器容器,而不是直接弹出它的那个控制器,这么设计的原因也许是因为使层次结(architecture)构简单吧。


0 0
原创粉丝点击