Быстрое переключение приложений, что мне нужно? - PullRequest
0 голосов
/ 22 июля 2011

Мое приложение отлично работает без поддержки многозадачности .Но когда я активирую его в info.plist, то происходит сбой каждый раз, когда я что-то нажимаю на navigationController и нажимаю кнопку home, возвращаюсь в приложение и снова использую navigationController снова.Сообщение об ошибке мне тоже не помогает.

Что мне нужно сделать для поддержки многозадачности в моем приложении, когда я хочу, чтобы приложение только ничего не делало в фоновом режиме и возвращалось, если бы это было.

К сожалению, инструменты не работают правильно, так как Xcode 4.1 -_- ".

Иногда в консоли выводится сообщение об ошибке:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CAContextImpl _isCached]: unrecognized selector sent to instance 0x5b783d0'

Иногда это EXC_BAD_... в представлении, где я создаю переключатель ??? Но только если я нажал кнопку «Домой» раньше! Если я только нажимаю на представление и затем возвращаюсь. Нажмите кнопку «Домой». Нажмите «Символ приложения».И затем попробуйте нажать тот же самый вид снова, он вылетает. Но когда я выдвигаю вид, возвращаюсь и толкаю вид, он работает. Он вылетает, только когда я был в 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;
}

1 Ответ

2 голосов
/ 22 июля 2011

Из вашего описания не видно, что многозадачность является проблемой.Это читается как будто в вашем приложении есть ошибка.Вы должны попытаться отследить и исправить это.

По умолчанию ваше приложение ничего не делает в фоновом режиме.

...