控制器逻辑跳转Push Pop
最近开发新项目,是一个商城类型的项目,其中商品详情是我负责的,界面没什么好说的,右侧navbarItem的弹窗有跳转到首页的选项,把我虐死了,而且同事还在添加了一个中转控制器,刚开始完全懵逼了,后来才慢慢理清。
先说说Push和Pop,这两个方法就是对一个栈的操作,push是向栈里面压入控制器,Pop是出栈,把控制器弹出,在栈做顶层的控制器被显示在界面上。如果你的栈里面没有A控制器,你想Pop到A显然是不行的。Pop需要的是同一个栈内的控制器间的操作。
push控制器就是把控制器压入栈内,一个对象不能压入第二次。A类的Aa对象压入后可以压入Ab对象。当控制器所在的栈内有ABCDEFGF控制器是,从G控制器可以pop到A-F控制器,如果想pop到F控制器是不行的,只能pop到本身的底部的控制器,同理,不在G对象栈内的H控制器也不能被pop到
最近使用presentViewController跳转控制器的时候会很卡,超过5s,我找了找,解决方式是在主线程中跳转,跳转速度和pushViewController方法速度差不多了,都很快。具体原因好像导入了一个包,具体有空在写
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion NS_AVAILABLE_IOS(5_0);
dispatch_async(dispatch_get_main_queue(), ^
{
//跳转界面 [self presentViewController:liveRoomVC animated:YES completion:nil];
});
浙公网安备 33010602011771号