3

私のiPhoneアプリケーションとサンプルコードを(例えばSampleCodeプロジェクト)統合したいのですが、firstViewControllerのサンプルコードはMainWindow.xibに追加され、下のコードで作成されたviewControllerにリンクされています。ビューコントローラのappdelegateとdelegateの違い

@interface SampleCodeAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    firstViewController *viewController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet firstViewController *viewController; 

とのViewController initWithCoderでインスタンス化し、firstViewは、ボタンカメラのタップに登場したとき、以下のコードのようにOpenCameraメソッドを呼び出すことが開くことができます。私のナビゲーションベースのアプリケーション(MyApplicationという)では

//in firstViewController.mm file 

- (id)initWithCoder:(NSCoder *)coder { 

    if (self = [super initWithCoder:coder]) { 

    } 

    [self initLocal]; 

    return self; 
} 
//to open camera in SampleCode application 
    - (IBAction)OpenCamera { 

     UIApplication *app = [UIApplication sharedApplication]; 
     SampleCodeAppDelegate* delegate = [app delegate]; 
     UIViewController* uiViewCont = [delegate viewController]; 
     ((CCamera*)m_pCamera)->Camera(uiViewCont); 
    } 

私はMyApplicationAppDelegateに追加することなく、直接のViewController MyApplicationViewControllerAの一つとのSampleCodeのfirstViewControllerを呼び出したいです。

私は、MyApplicationViewControllerA viewControllerでデリゲートを作成していて、SampleCodeアプリケーションのappdelegateとして機能する必要があります。 私はカメラを開くことができませんが、カメラを閉じた後、MyApplicationViewControllerA以外のMyApplicationの他のビューを開くことができません。 私はpushViewControllerとmodalViewControllerが他のViewをレンダリングすることができません。

私はデリゲートについて混乱していません。だから、私はAppDelegate(SampleCodeAppDelegate : NSObject <UIApplicationDelegate>)と他のViewContrllerで宣言されたデリゲートの違いを知りたい。

+1

[self initLocal];あなたの "if(self = [super init ...]"ブロック内にあるはずです。スーパーinitが失敗した場合は、オブジェクトを設定しようとしたくない場合があります。ちょうど自己を返します(これはゼロになります)。 – occulus

答えて

2

私はpushViewControllerとmodalViewControllerが他のViewをレンダリングできません。

答え: あなたがカメラオーバーレイ画面の後に、他のビューを表示することができないなら、私はあなたがperformSelectorOnMainThread

[self performSelectorOnMainThread:@selector(showOtherView) withObject:OtherViewControllerObj waitUntilDone:YES]; 

と中を使用して、メインスレッド上でアクションを実行することにより、他のビューを表示する必要があると思いますshowOtherViewセレクタメソッドを使用するには、最初にnavigationconrollでviewconrollerをプッシュする必要があることを確認する必要があります。プッシュされている場合は、presentModalViewControllerを使用してotherviewを次のように表示してください。

-(void)showOtherView{ 

[self.navigationController pushViewController:OtherViewControllerObj animated:YES]; 

[self presentModalViewController:OtherViewControllerObj animated:YES]; 

} 

私はこれがうまくいくと思います。

関連する問題