0

私のアプリにはメイン画面があります(mainView)。に、ボタンmainViewがあります。ユーザーがタップすると、使用します

[self presentViewController:libraryView animated:YES completion:nil]

別のビューを表示します ( libraryView)。次に、libraryView私は使用します

[self.view addSubview:tabBarController.view]

UITabBarController2 つの View Controller を持つa を追加するには:featuredBooksおよびrecentBooks

すべて正常に動作します。しかし、ボタンを追加してfeatureBooksを閉じてlibraryViewに戻るとmainView、次の方法は機能しません

[self dismissViewControllerAnimated: YES completion:nil]
[self.parentViewController dismissViewControllerAnimated: YES completion:nil]
[self.presentingViewController dismissViewControllerAnimated: YES completion:nil]

私はその理由を知っています:ではなく のビューselfを参照しています。featureBookslibraryView

では、 Tab Bar Controller 内の View Controller (または) から を参照してlibraryView閉じ、戻るにはどうすればよいでしょうか?mainViewfeatureBooksrecentBooks

どうもありがとうございました。

4

1 に答える 1

0

mainView を libraryView のデリゲート オブジェクトにする... 次に、libraryView からデリゲート メソッドを呼び出すと、mainView はそのコードでメソッドを呼び出します。

そう:

1) libraryView コントローラ .h コードに作成:

@protocol LibraryViewDelegate

      - (void) LibraryViewDelegate_DismissButtonClicked;

@end

2) 次に、プロパティを mainView .h ファイルに作成します。

@property(nonatomic, assign) NSObject<LibraryViewDelegate> *delegate;

そして以下を .m に

@synthesize delegate;

libraryView オブジェクトの作成後、それを提示する前に mainView をこのプロパティに割り当てます。

3) 次のコードを mainview .m ファイルに書き込みます。

-(void)LibraryViewDelegate_DismissButtonClicked{
      //put here the code for dismissing mainView created modalViewController (libraryView)
}

4)次に、以下を呼び出すコードを記述します。

[self.delegate LibraryViewDelegate_DismissButtonClicked];

非表示ボタンを押したときにlibraryViewに入る

于 2012-07-29T09:00:50.013 に答える