0

コントローラAからサブビューを追加しました。サブビューコントローラであるコントローラBで、ユーザーがBを使い終わったときに、ビューAをリロードするにはどうすればよいですか?サブビューを追加する私のコード:

ChangeProfileImage *changeProfileImage =[[ChangeProfileImage alloc] init];  
    changeProfileImage.modalPresentationStyle = UIModalPresentationFormSheet;
    changeProfileImage.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    changeProfileImage.view.frame = CGRectMake(50, 50, 300, 300);  
    UIView *dimBackgroundView = [[UIView alloc] initWithFrame:self.view.bounds];
    dimBackgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f];  
    [self.view addSubview:dimBackgroundView];
    [self.view addSubview:changeProfileImage.view];
4

2 に答える 2

1

「dimbackground」のタグを設定して、次のように削除できます。

dimBackgroundView.tag = 111;//you will do this line when you create the view.
UIView *view = [controllerA.view viewWithTag:111];
[view removeFromSuperview];

viewControllerを更新するには:

ユーザーが送信ボタンをクリックしてBビューを削除すると、次のNSNotificationCenterように通知を投稿します。

[[NSNotificationCenter defaultCenter] postNotificationName:@"UserSubmit" object:nil];

そしてcontrollerAで..viewDidLoadたとえば、このようにオブザーバーとして追加します

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshView) name:@"UserSubmit" object:nil];

そして、あなたはこの関数を実装します:

- (void) refreshView
{
    //Do your stuff
}
于 2012-05-06T15:50:50.080 に答える
0

IBActionが接続されたビューコントローラBにボタンを作成し、そのボタンのIBactionに次のコードを記述します。これにより、ビューコントローラBが削除されます。

[self.view removeFromSuperview];

于 2012-05-06T16:01:54.187 に答える