0

NavBar と ToolBar を使用した単純なプロジェクトがあります。私のコード:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.view setBackgroundColor:[UIColor whiteColor]];

    [toolBar setBarStyle:UIBarStyleBlack];
    [toolBar setTranslucent:YES];

    addPhotoItem = [[UIBarButtonItem alloc] initWithTitle:@"Add photo" style:UIBarButtonItemStyleBordered target:self action:@selector(showActionSheet)];
    NSArray *itemsArray = @[ addPhotoItem ];
    [toolBar setItems:itemsArray];
    [toolBar setFrame:CGRectMake(0.0f, self.view.frame.size.height-44.0f, self.view.frame.size.width, 44.0f)];
    [self.view addSubview:toolBar];

    [navBar setFrame:CGRectMake(0.0f, 0.0f, self.view.frame.size.width, 44.0f)];
    [navBar setBarStyle:UIBarStyleBlack];
    [navBar setTranslucent:YES];
    [self.view addSubview:navBar];
}

私のツールバーには、カメラとライブラリから画像を取得するという 2 つのオプションで ActionSheet を開くボタンが 1 つあります。私のコード:

- (void)getMediaFromSource:(UIImagePickerControllerSourceType)sourceType {
    self.imagePicker.delegate = self;
    self.imagePicker.sourceType = sourceType;
    [self presentModalViewController:self.imagePicker animated:YES];
}

しかし、モーダルコントローラーを却下した後、私の親ビューは44pt(およそ)上がります。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

ツールバーのフレームを設定する必要はありません。これをviewDidLoadに追加するだけです

[self.navigationController setToolbarHidden:NO animated:NO];

ツールバーが表示されます。手動でサブビューとして追加しないでください。UIBarButtonItem を次のように追加できます。

self.navigationController.toolbarItems = [NSArray arrayWithObjects:addPhotoItem, nil];

そしてあなたは終わった。

パラメータを次のようYESに設定することで、ツールバーを再び非表示にすることができますsetToolbarHidden

役に立てば幸いです。幸せなコーディング:)

于 2012-09-06T13:37:37.560 に答える