[英]How to dismiss parent view from View Controller in Tab Bar Controller?
我的應用程序有一個主屏幕( mainView
)。 在mainView
,我有一個按鈕。 當用戶點擊時,我使用
[self presentViewController:libraryView animated:YES completion:nil]
呈現另一個視圖( libraryView
)。 然后,在libraryView
,我使用
[self.view addSubview:tabBarController.view]
添加一個具有2個View Controller的UITabBarController
: featuredBooks
和recentBooks
一切正常。 但是,當我向featureBooks
添加按鈕以libraryView
並返回mainView
,以下方法不起作用
[self dismissViewControllerAnimated: YES completion:nil]
[self.parentViewController dismissViewControllerAnimated: YES completion:nil]
[self.presentingViewController dismissViewControllerAnimated: YES completion:nil]
我知道原因: self
是指featureBooks
的視圖,而不是libraryView
。
因此,我該如何引用libraryView
,將其關閉,然后從Tab Bar Controller中的視圖控制器( featureBooks
或recentBooks
)返回到mainView
?
非常感謝你。
使mainView成為libraryView的委托對象...然后,當您從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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.