0

ナビゲーション バーにビューを追加しています

UIView *mySubView = [UIView alloc] initwithFrame:frame];
[self.navigationController.navigationBar addSubview:mySubView];

secondviewController にプッシュする前にビューを削除したい。

[mySubView removeFromSuperView];

アプリの初回起動時にビューが削除されなかったため、ビューはセカンドビュー ナビゲーション バーにも表示されます

私は多くのアプローチを検索して試しましたが、解決策は見つかりませんでした。

4

4 に答える 4

4

mysubview のようにタグを割り当てます

UIView *mySubView = [UIView alloc] initwithFrame:frame];
mySubView.tag =1;
[self.navigationController.navigationBar addSubview:mySubView];

次に、secondViewController にプッシュするときにこの行を追加します。

[[self.navigationController.navigationBar viewWithTag:1] removeFromSuperview];

お役に立てば幸いです。

于 2013-04-19T11:17:32.437 に答える
2

削除するビューのタグプロパティに値を追加し、サブビューを削除する前に確認します。たとえば、サブビューにゼロ以外の値を追加するとします。

 for (UIView *view in self.navigationController.navigationBar.subviews) {
if (view.tag != 0) {
    [view removeFromSuperview];
     }
}

これを試してみてください!!!!

于 2013-04-19T11:28:36.653 に答える
0

ViewControllerサブビューを持っている に対して次のことを行いますNavigationBar

.h

@property (nonatomic, retain) UIView *mySubView;

.m

- (void)viewDidLoad {
    //Your Existing Code + following 2 lines
    self.mySubView = [[UIView alloc] initWithFrame:yourFrame];
    self.mySubView.backgroundColor = [UIColor whiteColor];
}

- (void)viewWillAppear:(BOOL)animated {
    //Your Existing Code + following 1 line
    [self.navigationController.navigationBar addSubview:self.mySubView];
}

- (void)viewWillDisappear:(BOOL)animated {
    //Your Existing Code + following 1 line
    [self.mySubView removeFromSuperview];
}

そして、あなたは行ってもいいです。試してテストしました。

于 2013-04-19T11:28:47.243 に答える