我正在创建一个新闻应用,因为我主要有2个UIView控制器:
突发新闻显示了瓷砖图片和一些描述的最新消息。 在主页中我可以选择我想要的体育,政治等新闻。所以每次它都会在主页内显示这类新闻。
我的问题是
当我打开应用程序时,我可以看到突发新闻,并点击了一个新闻项目,因此它将在新UIViewController
中打开,其中包含与该新闻相关的所有图像和说明。
如果我点击该描述页面中的下一个标签栏按钮,它将打开主页UIViewController
并崩溃。有时我可以看到Home UIViewController
,当我打开新闻时,它就会崩溃。
如果我点击后退按钮,那么我将到达突发新闻页面,然后它不会崩溃。
但这个问题仅出现在iOS 6.0+版本中。我尝试在iOS 5.1设备中运行相同的应用程序,它正常工作。
崩溃日志
-[DescriptionPageViewController respondsToSelector:]: message sent to deallocated instance 0x1f59a370`
更新 我现在试图再次使用断点IN ipad 6.1模拟器运行相同的情况,但它在那里工作正常并且没有断点设备崩溃***为什么????
Appdelegate代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]==YES) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"everLaunched"];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self loadingControllers];
}
return YES;
}
-(void)loadingControllers{
BreakingNewsViewController *breaking = [[BreakingNewsViewController alloc] initWithNibName:@"BreakingNewsViewController" bundle:nil];
UIViewController *home = [[homepage alloc] initWithNibName:@"homepage" bundle:nil];
UINavigationController*viewController1 = [[UINavigationController alloc] initWithRootViewController:breaking];
UINavigationController *viewController2 = [[UINavigationController alloc] initWithRootViewController:home];
viewController1.navigationBarHidden = YES;
viewController2.navigationBarHidden = YES;
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.tabBar.backgroundImage = [UIImage imageNamed:@"Tabbar_bg.png"];
// self.tabBarController.tabBar.tintColor=[UIColor darkGrayColor];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1,
viewController2
,nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
[self.tabBarController setDelegate:self];
}
答案 0 :(得分:5)
您正在DescriptionPageViewController
内分配/初始化BreakingNewsViewController
。
请为具有强属性的DescriptionPageViewController
对象创建属性。
// In BreakingNewsViewController.h
@property (strong, nonatomic) DescriptionPageViewController *descriptionPageViewController;
// In BreakingNewsViewController.m
self.descriptionPageViewController = [[DescriptionPageViewController alloc]initWithNibName:@"DescriptionPageViewController "];