1

このメソッドを使用して、最初のモーダルが閉じられた後に2番目のモーダルを表示しようとしています...メソッド自体は正常に機能しますが、オブジェクトをパラメーターとして渡す必要があり、本当にやりたいことは代わりに UIImageControllerSourceType を使用してください。これを行うために使用する必要がある別の方法はありますか、または UIImageControllerSourceType をオブジェクトにする簡単な方法はありますか? これはあまり難しくないと思いますが、しばらく苦労しています...

- (void)showModalTwoImageSearchViewControllerWithSourceType:(UIImagePickerControllerSourceType *)sourceType {

if (self.modalViewController) {        
    [self performSelector:@selector(showModalTwoImageSearchViewControllerWithSourceType:)
               withObject:sourceType
               afterDelay:0.1f];
    return;
}
// present second modal view - remembering to deal with cases of camera or photo library
if (sourceType == UIImagePickerControllerSourceTypePhotoLibrary) {
    //do one thing
}
// lets assume it was UIImagePickerControllerSourceTypeCamera
else {
    // do something else
}

}

4

2 に答える 2

1

UIImagePickerControllerSourceType最終的にはNSUIntegerであり、実行しようとしているメソッド ( performSelector のもの) は、そのwithObjectパラメーターに目的の C オブジェクトのみを取り、C の型やポインターは取りません。

NSUIntegersオブジェクトを作成し、NSNumberそれに整数を詰め込むことで渡すことができます。

オブジェクトを作成するには、のメソッドNSNumberと同じくらい簡単に作成できます。NSNumbernumberWithUnsignedInteger

于 2012-04-16T13:09:39.337 に答える
0

UIImagePickerControllerSourceType は列挙型です。これをオブジェクトとして使用する最も簡単な方法は、NSNumber にすることです。

NSNumber *n = [NSNumber numberWithInt:sourceType];
于 2012-04-16T13:16:13.540 に答える