2011-02-08 8 views
1

こんにちは、私はiPhone/iPad開発で非常に新しいです。iPhone/iPadでpresentModalViewControllerを使用するには?

私のアプリケーションでは、ボタンをクリックしてpresentModalViewControllerのようなビューコントローラを表示したいのですが、いくつかの値を持つUITableViewを含むことができます。私はそのコントローラの後ろにあるコントローラに値を渡したいと思います。

リンゴサンプルアプリケーションのPhotoPickerコードを使用しています。 http://developer.apple.com/library/ios/#samplecode/PhotoPicker/Introduction/Intro.html

しかし私は自分のコードで何が間違っていたのか理解できません。

私はOverlayViewControllerからこの関数を呼び出す方法を...いずれかが、このために私を助けることができるMyViewController.m

- (void)didFinishWithCamera 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
//Here is my some logic 
} 

にあるコードに行くことができないのですか?

私は上記のリンクを参照してください、または私にいくつかのステップを与えたり、同じことを私に案内してください。

答えて

0

使用delegation

私は、現時点では私が書いているアプリで、このようなものを使用します。

// MySecretSelectionViewController.m 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    [delegate mySecretSelectionViewController:self didSelectObject:[self objectForIndexPath:indexPath] atIndexPath:indexPath]; 
} 

// MyViewController.m 
- (void)mySecretSelectionViewController:(MySecretSelectionViewController *)es didSelectObject:(MySecretObject *)object atIndexPath:(NSIndexPath *)indexPath { 
    // do something with the selected object 
    [self dismissModalViewControllerAnimated:YES]; 
} 

- (void)showMySecretSelectionViewController:(id)sender { 
    MySecretSelectionViewController *vc = ... 
    vc.delegate = self; 
    // present ViewController 
} 
+0

からMyViewControllerにdidFinishWithCameraを呼び出すために上記のクラスのメソッドを使用します。同じことをもっと手伝ってもらえますか? – user607899

0

あなたはまた、NSNotificationCenterを使用してこれを行うことができます。

インサイドMyViewController.m:OverlayViewController.mから

- (void)viewDidLoad 
{ 
    // your code 

    // Add observers 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didFinishWithCamera) name:@"YourObserverName" object:nil]; 
} 

+ (void)callDidFinishWithCamera 
{ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"YourObserverName" object:nil]; 
} 

- (void)dealloc 
{ 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 

    // your code 
} 

[MyViewController callDidFinishWithCamera]; 

はまだ私はあなたのポイントを取得していない午前OverlayViewController

+0

これから12ヵ月後に、プロジェクトに参加して50の通知をリファクタリングして、プロジェクトに参加させていただきます。ちょうどその1ヶ月前^ ^ –

関連する問題