Closed ghost closed 9 years ago
在BeeFramework的官方示例应用https://github.com/GeekZooStudio/ECMobile_iOS 中看到这样的一段代码位于AppBoard_iPhone.m中
- (void)showLogin { if ( self.modalStack ) { return; } [self presentModalStack:[BeeUIStack stackWithFirstBoard:[A0_SigninBoard_iPhone board]] animated:YES]; } - (void)hideLogin { if ( nil == self.modalStack ) { return; } [self dismissModalStackAnimated:YES]; }
很简单,一个是显示,一个是隐藏。但在使用时会发现一个问题,这个hideLogin是由A0_SigninBoard_iPhone自己去调用 。代码如下:
ON_LEFT_BUTTON_TOUCHED( signal ) { [[AppBoard_iPhone sharedInstance] hideLogin]; }
当A显示B,则[A presentModalStack:B]; 而B要关闭时,则是[A dismissModalStackAnimated]. 问题来了,B在调用A销毁自己时,自己已经被销毁了,但仍拿着A的引用,这会不会千万内存的泄露或其他总是问题呢?
另外,iOS的原生系统中显示和关闭ViewController的两个方法是,
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0); - (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion NS_AVAILABLE_IOS(5_0);
这两个方法一般是用法是。 A要显示B,则[A presentViewController:B], 当B要关闭时,则[B dismissViewControllerAnimated]就结束了。
两者的区别来了,想问的是_Bee有类似的方法或逻辑吗,或者说是Bee的流程我理解错了_,还请各位用过的多指正。
在BeeFramework的官方示例应用https://github.com/GeekZooStudio/ECMobile_iOS 中看到这样的一段代码位于AppBoard_iPhone.m中
很简单,一个是显示,一个是隐藏。但在使用时会发现一个问题,这个hideLogin是由A0_SigninBoard_iPhone自己去调用 。代码如下:
当A显示B,则[A presentModalStack:B]; 而B要关闭时,则是[A dismissModalStackAnimated]. 问题来了,B在调用A销毁自己时,自己已经被销毁了,但仍拿着A的引用,这会不会千万内存的泄露或其他总是问题呢?
另外,iOS的原生系统中显示和关闭ViewController的两个方法是,
这两个方法一般是用法是。 A要显示B,则[A presentViewController:B], 当B要关闭时,则[B dismissViewControllerAnimated]就结束了。
两者的区别来了,想问的是_Bee有类似的方法或逻辑吗,或者说是Bee的流程我理解错了_,还请各位用过的多指正。