主に2つのUIViewcontrollersがあるという点でニュースアプリを作成しています:
- ニュース速報
- ホームページ
ニュース速報では、最新のニュースがタイル イメージと説明とともに表示されます。また、ホームページでは、スポーツ、政治など、必要なニュースの種類を選択できます。そのため、毎回その種類のニュースがホームページ内に表示されます。
私の問題は
アプリを開くと、ニュース速報が表示されます。1 つのニュース項目をクリックするとUIViewController
、そのニュースに関連するすべての画像と説明が新しく表示されます。
その説明ページから次のタブバー ボタンをクリックすると、ホームが開きUIViewController
、クラッシュします。ホームが表示されることがありますがUIViewController
、ニュースを開くとクラッシュします。
戻るボタンをクリックすると、ニュース速報ページに移動し、クラッシュしません。
しかし、この問題は iOS 6.0 以降のバージョンでのみ発生します。iOS 5.1 デバイスで同じアプリを実行しようとしましたが、正常に動作しています。
クラッシュログ
-[DescriptionPageViewController respondsToSelector:]: message sent to deallocated instance 0x1f59a370`
今すぐ更新 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];
}