0

我的应用程序有一个主屏幕 ( mainView)。开mainView,我有一个按钮。当用户点击它时,我使用

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

呈现另一种观点 ( libraryView)。然后,在 上libraryView,我使用

[self.view addSubview:tabBarController.view]

添加一个UITabBarController有 2 个视图控制器的:featuredBooksrecentBooks

一切正常。但是当我添加一个按钮来featureBooks关闭libraryView并返回时mainView,以下方法不起作用

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

我知道原因:selffeatureBooks的是 的观点,而不是libraryView

那么,我如何引用libraryView、关闭它并从Tab Bar Controller 内mainView的视图控制器(featureBooks或)返回?recentBooks

非常感谢。

4

1 回答 1

0

制作libraryView的mainView委托对象... 然后当你从libraryView调用委托方法时,mainView会在其代码中调用dismissViewcController方法。

所以:

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 回答