I am working on an app targeted for > iOS 4. In this app I display a UIWebView as modalView (inside an UIViewController which is pushed from an UITableViewController living in an UINavigationController ;)):
SettingsViewController *settings = [[SettingsViewController alloc] initWithNibName:@"SettingsView" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:settings];
[self.navigationController presentModalViewController:navController animated:YES];
[settings release];
[navController release];
This shows a modal view with a UITableView. Once a specific row is tapped my browser view controller is pushed:
WebBrowserViewController *vc = [[WebBrowserViewController alloc] initWithNibName:@"WebBrowserView" bundle:nil];
[self.navigationController pushViewController:vc animated:YES];
[vc goToUrl:@"http://www.example.com"];
[vc release];
Inside the WebBrowserViewController is an UIWebView and some browser controls (address bar, back and refresh buttons). This all works as expected.
On to the problem:
If there are youtube videos embedded on a website and those are clicked the youtube player launches fullscreen. Once I close the youtube player (Done button) the player closes, apparently my modal view closes too and the app crashes after showing my root view controller for a second.
This is the console output:
2011-02-24 14:52:51.109 MyApp[498:307] modifying layer that is being finalized - 0x14eda0
2011-02-24 14:52:51.113 MyApp[498:307] modifying layer that is being finalized - 0x14b590
2011-02-24 14:52:51.117 MyApp[498:307] modifying layer that is being finalized - 0x14c630
2011-02-24 14:52:51.262 MyApp[498:307] modifying layer that is being finalized - 0x14eda0
2011-02-24 14:52:51.270 MyApp[498:307] *** -[CALayer sublayers]: message sent to deallocated instance 0x178fe0
My guess is that once the youtube player is launched my modal view controller is released and jumping back to it fails. I wasn’t successful in finding the place to add a retain or similar …
Anyone seen this happen and can give me a hint what to do?
Thanks,
Mark.
See this: Reg: modifying layer that is being finalized……. [CALayer frame]: message sent to deallocated instance 0xe43c520
The error
"modifying layer that is being finalized"occurs when you are trying to modify the properties of aCALayerwhen it is in the process of being deallocated. I’ve seen this happen when I’ve accidentally used an accessor to clear a property on aCALayerwhile within that layer’s-deallocmethod.