簡體   English   中英

如何在標簽欄控制器中從視圖控制器中消除父視圖?

[英]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的UITabBarControllerfeaturedBooksrecentBooks

一切正常。 但是,當我向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中的視圖控制器( featureBooksrecentBooks )返回到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM