解雇模态视图控制器后视图上升

时间:2012-09-06 13:26:50

标签: iphone objective-c ios

我有一个使用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:从相机和库中获取图像。我的代码:

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

但在解雇模态控制器后,我的父视图上升到44pt(大约)。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你不需要设置工具栏的框架,只需在viewDidLoad

中添加它
[self.navigationController setToolbarHidden:NO animated:NO];

它将调出toobar,不要手动添加它作为subView,你可以添加UIBarButtonItem为

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

你完成了。

您可以通过在YES

中将参数设置为setToolbarHidden来再次隐藏工具栏

我希望它有所帮助。快乐的编码:)