1

表示されたビューにタブバー コントローラーが含まれるモーダル ビューを表示しました。ビューは正しく表示されますが、タブバー ビュー コントローラーのボタンに DismissModalViewController を追加すると、非表示になりません。ビューに何も起こりません。

そのモーダルView Controllerを閉じるにはどうすればよいですか?

4

3 に答える 3

2

表示側のビュー コントローラーは、モーダル ビュー コントローラーの破棄も処理する必要があります。デリゲートを使用して、提示したView Controllerを閉じることができることを提示しているView Controllerに通知する必要があります。

モーダル ビュー コントローラーで:

@protocol SomeProtocol<NSObject>
- (void)didFinishDoingWhatItNeedsToDo:(id)sender;
@end

@interface ModalViewController : UIViewController
@property (nonatomic, weak) id <SomeProtocol> delegate;
@end

@implementation

- (IBAction)buttonClicked:(id)sender {

    [self.delegate didFinishDoingWhatItNeedsToDo:self];

}

次に、表示側のビュー コントローラーで次のようにします。

@interface SomeObject : UIViewController <SomeDelegate>
@end

@implementation

- (void)someMethod {

    ModalViewController *mvc = [[ModalViewController alloc] init];
    mvc.delegate = self;

    [self presentViewController:mvc animated:YES completion:nil];
}

- (void)didFinishDoingWhatItNeedsToDo:(id)sender {

    [self dismissViewControllerAnimated:YES completion:nil];
}
于 2012-06-08T07:43:54.680 に答える
0

コントローラーにタブバーを表示していたときは、次を使用している必要があります。

[self presentModalViewController:newTabBarController animated:YES];

辞退したいときは、こう言わなければなりません。

[self.tabBarController dismissModalViewControllerAnimated:YES]
于 2012-06-08T07:32:26.083 に答える
0
[[self parentViewController] dismissModalViewControllerAnimated:YES];
于 2012-06-08T07:35:37.850 に答える