私のアプリケーションは、マルチタスキングをサポートしていない状態で正常に動作します。 しかし、私はinfo.plistでそれをアクティブにすると、navControllerに何かを押してホームボタンを押すたびにクラッシュし、アプリケーションに戻り、再びnavigationControllerを使用しました。 エラーメッセージは私にも役に立ちません。アプリの切り替えが高速ですが、何が必要ですか?
アプリでマルチタスクのサポートをするには何が必要なのですか?アプリがバックグラウンドで何もしないようにしたいときに戻ってくるだけです。
悲しい機器が正しく動作しないのいずれかのXcode 4.1以降-_-」
コンソールにエラーメッセージが時々ある:たまに
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CAContextImpl _isCached]: unrecognized selector sent to instance 0x5b783d0'
ことですEXC_BAD _... ???ホームボタンを前にクリックした場合のみ 私はビューをプッシュしてから戻ることができますホーム - Buttomをクリックして、App-Symbolをタップしてから、同じビューが再びクラッシュします。 しかし、私がビューをプッシュすると、戻ってビューをプッシュしますrks。それは私がSpringBoard(ホームボタンをクリック)に入ったときにだけクラッシュします。
編集:
//AppDelegate class
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[window makeKeyAndVisible];
[self loadHauptmenu];
return YES;
}
- (void) loadHauptmenu {
NSLog(@"loading Hauptmenu");
navigationController = [[UINavigationController alloc] init];
HauptMenuViewController *hauptMenuController = [[HauptMenuViewController alloc] init];
[navigationController pushViewController:hauptMenuController animated:NO];
// [hauptMenuController release]; //tried this as error, but wasn't it
[window addSubview:navigationController.view];
}
//Main Menu class
- (void) pushNewViewController:(UIViewController*)pushMe {
NSLog(@"Der aktuelle navigationController ist: %@", self.navigationController);
[self.navigationController pushViewController:pushMe animated:YES];
}
- (void) pushNewViewWithClassname:(NSString*)classname {
UIViewController *viewControllerToPush = [[NSClassFromString(classname) alloc] init];
[self pushNewViewController:viewControllerToPush];
[viewControllerToPush release];
}
- (IBAction) pushEinstellungen:(id)sender {
[self pushNewViewWithClassname:@"EinstellungenViewController"];
}
//view class, which gets pushed
- (id) init {
self = [super init];
if (self != nil) {
self.title = @"Einstellungen";
//self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 416)];
self.view.backgroundColor = MEDILEARN_COLOR;
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 416) style:UITableViewStyleGrouped];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.allowsSelection = NO;
self.tableView.backgroundColor = [UIColor clearColor];
[self.view addSubview:self.tableView];
self.fragenSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(194, 8, 94, 28)]; //here is an EXC_BAD_...
[self.fragenSwitch addTarget:self action:@selector(toggleEnabledForFragenSwitch:) forControlEvents:UIControlEventValueChanged];
[self.fragenSwitch setOn:[[NSUserDefaults standardUserDefaults] boolForKey:@"randFragen"] animated:NO];
self.antwortenSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(194, 8, 94, 28)];
[self.antwortenSwitch addTarget:self action:@selector(toggleEnabledForAntwortenSwitch:) forControlEvents:UIControlEventValueChanged];
[self.antwortenSwitch setOn:[[NSUserDefaults standardUserDefaults] boolForKey:@"randAntworten"] animated:NO];
}
return self;
}
何もする必要はありません。マルチタスクをより効果的に活用するにはできることがありますが、すぐに使用できるiOSは、切り替えたときの状態にアプリを復元する必要があります。 – Jason