1

私の質問は簡単です:UIImagePickerControllerのナビゲーションバーのバーボタンのタイトルを変更するにはどうすればよいですか? UIImagePickerController (ボタンへの圧力によってトリガーされる) のコントローラーを作成し、そのプロパティを変更しようとしました。

- (IBAction)chooseFromRoll:(id)sender {

    if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum]){
        UIImagePickerController *imagePicker =
        [[UIImagePickerController alloc] init];

        imagePicker.navigationBar.tintColor = [UIColor colorWithRed:0.42 green:0.18 blue:0.66 alpha:1.0];
        //imagePicker.navigationItem.title = @"Scegli foto profilo";

        imagePicker.delegate = self;
        imagePicker.sourceType =
        UIImagePickerControllerSourceTypePhotoLibrary;
        imagePicker.mediaTypes = [NSArray arrayWithObjects:
                                  (NSString *) kUTTypeImage,
                                  nil];
        imagePicker.allowsEditing = NO;


        [imagePicker.navigationController.navigationItem.rightBarButtonItem  setTitle:@"Annulla"];
        [self presentViewController:imagePicker animated:YES completion:nil];
    }
}

ナビゲーションバーのみが正しく変更されました。

関数 willShowViewController のコードは次のとおりです。

- (void) navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 30)];
    label.textAlignment = 2;
    label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width-200,label.frame.size.height);
    label.adjustsFontSizeToFitWidth = YES;
    label.font = [UIFont fontWithName:@"Futura" size:15.0];
    [label setFont:[UIFont boldSystemFontOfSize:16.0]];
    [label setBackgroundColor:[UIColor clearColor]];
    [label setTextColor:[UIColor whiteColor]];
    [label setText:@"Scegli foto profilo"];

    [navigationController.navigationBar.topItem setTitleView:label.viewForBaselineLayout];

    [navigationController.navigationBar.topItem.rightBarButtonItem setTitle:@"Annulla"];



}

どこが間違っているのか教えていただけますか?

ありがとう

4

1 に答える 1

5

これは、uiimage ピッカーでナビゲーション バーのタイトルを微調整するためのコード スニペットです。

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
UINavigationItem *ipcNavBarTopItem;

// add done button to right side of nav bar
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Photos"
                                                               style:UIBarButtonItemStylePlain 
                                                              target:self 
                                                              action:@selector(saveImages:)];

UINavigationBar *bar = navigationController.navigationBar;
[bar setHidden:NO];
ipcNavBarTopItem = bar.topItem;
ipcNavBarTopItem.title = @"Photos";
ipcNavBarTopItem.rightBarButtonItem = doneButton;
}

これがあなたを助けることを願っています。

編集:

最初の質問に対する答えは「はい」です。ibaction を使用するか、上記で提供した方法を使用してボタンを作成できます。どちらも機能するはずです。inaction を使用している場合は、その中でコントローラーを宣言して、アクション メソッド内からコントローラーを表示および非表示にできるようにしてください。フォト アルバムのイメージ ピッカーが表示されたときに表示されるビューのタイトルを変更する場合は、2 番目の質問への回答新しいサブビューを作成してポップアップし、ユーザーが目的の画像を選択できるようにする必要があります。上記の方法でタイトルを変更できます。長いプロセス、私はそれをお勧めしません。3 番目の質問の答えとして、ボタンを宣言する次のコード スニペットを使用してみてください。

[btn.titleLabel setFont:[UIFont boldSystemFontOfSize:13]];

btn はボタンの名前で、フォント名とサイズを変更できます。私の答えがお役に立てば幸いです。頑張ってください。さらにサポートが必要な場合はお知らせください。

于 2013-07-18T03:23:43.490 に答える