你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 關於Storyboard拖拽的ViewController返回上一層時有對象被釋放

關於Storyboard拖拽的ViewController返回上一層時有對象被釋放

編輯:IOS開發綜合

最近有個需求,設置播放器播放音頻時,要求離開當前播放頁面也是可以播放的,然後整個項目都是采用storyboard拖拽,播放器設置是采用KVO通知的,當我點擊返回時,發現播放器控制對象被釋放了,然後導致程序崩潰。於是發現了在storyboard中拖拽的ViewController采用push或者modal彈出時,當點擊返回離開當前頁面時,strong類型修飾的變量被釋放,於是采用代碼形式初始化播放頁面的ViewController.詳見如下代碼:

@property (nonatomic,strong)CoursePlayViewController *courseVC;

- (void)enterPlayViewController

{
if (!self.courseVC) {
self.courseVC = [[CoursePlayViewController alloc] init];
}
[[self getCurrentVC] presentViewController:self.courseVC animated:YES completion:nil];

}

- (UIViewController *)getCurrentVC
{
UIViewController *result = nil;

UIWindow * Window = [[UIApplication sharedApplication] keyWindow];
if (window.windowLevel != UIWindowLevelNormal)
{
NSArray *windows = [[UIApplication sharedApplication] windows];
for(UIWindow * tmpWin in windows)
{
if (tmpWin.windowLevel == UIWindowLevelNormal)
{
window = tmpWin;
break;
}
}
}

UIView *frontView = [[window subviews] objectAtIndex:0];
id nextResponder = [frontView nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]])
result = nextResponder;
else
result = window.rootViewController;
return result;
}

[self getCurrentVC] 是獲取當前頁面的視圖控制器的方法。

以上就是關於Storyboard拖拽的ViewController返回上一層時有對象被釋放的全文介紹,希望對您學習和使用IOS應用開發有所幫助.

【關於Storyboard拖拽的ViewController返回上一層時有對象被釋放】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved