-1

カメラから画像を選択し、didFinishPickingMediaWithInfo でこれを別のビューに渡し、このビューをロードするアプリを作成しました。コードは問題ないと思いますが、2 番目のビューを表示するのに約 15 ~ 20 秒かかります。この読み込みの問題を解決する方法を教えてください。

私のコードブロックは次のとおりです。

-(void)imagePickerController:(UIImagePickerController *)picker 
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [[picker parentViewController] dismissModalViewControllerAnimated:YES];

    [NSThread detachNewThreadSelector:@selector(switchToSecondView:) toTarget:self withObject:info];
}

-(void) switchToSecondView:(NSDictionary *)info
{
    UIImage *image = [info
              objectForKey:UIImagePickerControllerOriginalImage];

    secController =[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    secController.myimage = image;

    AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication] delegate];
    [appDelegate.navController pushViewController:secController animated:NO];
}

ありがとう、ラクシュミラル・メナリア

4

1 に答える 1

0

UiKitは[圧倒的に]メインスレッドでのみ安全に使用できます。での作業switchToSecindView:はバックグラウンドスレッドで行われています。したがって、動作は定義されていません。

おそらく何が起こっているのかというと、UIKitは他の処理を実行するまで変更に気付かないということです。

于 2012-12-03T08:07:59.387 に答える