Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将UIBarButtonim添加到UIActionSheet导航栏(UIDatePicker)_Ios_Objective C_Uibutton_Uipickerview_Uiactionsheet - Fatal编程技术网

Ios 将UIBarButtonim添加到UIActionSheet导航栏(UIDatePicker)

Ios 将UIBarButtonim添加到UIActionSheet导航栏(UIDatePicker),ios,objective-c,uibutton,uipickerview,uiactionsheet,Ios,Objective C,Uibutton,Uipickerview,Uiactionsheet,我创建了UIActionSheet,并在上面添加了一个UIPickerView。现在,我想在UIActionSheet导航栏标题的右侧和左侧添加两个按钮。我该怎么做 这就是我目前所做的: - (IBAction)userDidClickedOnSelectDate:(id)sender { UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Select your birthday date:" dele

我创建了UIActionSheet,并在上面添加了一个UIPickerView。现在,我想在UIActionSheet导航栏标题的右侧和左侧添加两个按钮。我该怎么做

这就是我目前所做的:

- (IBAction)userDidClickedOnSelectDate:(id)sender
{
    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Select your birthday date:" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Select", nil];
    [actionSheet showInView:self.view];
    [actionSheet setFrame:CGRectMake(0, 100, 570, 383)];
}
我试图以这种方式添加UIButton,但是我不明白为什么我不能在视图上看到它。当我检查UIActionSheet子视图时,他就在那里(可能在下面的某个地方)

这就是它的样子:

我想有一种方法可以到达UIActionSheet导航栏或工具栏(标题所在的位置)并在顶部添加按钮

提前谢谢


根据people answer的说法,我已经设法创建了一个更好的选择器视图,它的呈现方式相同,但处理和构建方式要好得多。我创建了一个UIViewController,并添加了一个UIDatePicker和一个顶部有按钮的UIToolBar。而不是这样称呼它:

- (IBAction)userDidClickedOnSelectDate:(id)sender
{
    CustomDatePicker *customPicker = [[CustomDatePicker alloc] initWithNibName:@"CustomDatePicker" bundle:nil];
    customPicker.delegate = self;
    customPicker.view.backgroundColor = [UIColor clearColor];
    self.modalPresentationStyle = UIModalPresentationCustom;
    [self presentViewController:customPicker animated:YES completion:nil];
}
我还创建了一个委托,该委托告诉我单击“取消”和“完成”按钮的时间:

- (void)datePickerDidCancelled:(CustomDatePicker *)picker
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)datePicker:(CustomDatePicker *)picker dateDidSelected:(NSDate *)date
{
    NSLog(@"selectedDate: %@", date);
    [self dismissViewControllerAnimated:YES completion:nil];
}
根据,不应将子视图添加到UIActionSheets

UIActionSheet不是设计为子类的,也不应该添加 视图到其层次结构。如果您需要提交一份包含更多信息的工作表 除了UIActionSheet API提供的自定义之外,您还可以创建 您自己的,并以模式呈现给 presentViewController:已设置动画:完成:

根据,不应将子视图添加到UIActionSheets

UIActionSheet不是设计为子类的,也不应该添加 视图到其层次结构。如果您需要提交一份包含更多信息的工作表 除了UIActionSheet API提供的自定义之外,您还可以创建 您自己的,并以模式呈现给 presentViewController:已设置动画:完成:

根据,不应将子视图添加到UIActionSheets

UIActionSheet不是设计为子类的,也不应该添加 视图到其层次结构。如果您需要提交一份包含更多信息的工作表 除了UIActionSheet API提供的自定义之外,您还可以创建 您自己的,并以模式呈现给 presentViewController:已设置动画:完成:

根据,不应将子视图添加到UIActionSheets

UIActionSheet不是设计为子类的,也不应该添加 视图到其层次结构。如果您需要提交一份包含更多信息的工作表 除了UIActionSheet API提供的自定义之外,您还可以创建 您自己的,并以模式呈现给 presentViewController:已设置动画:完成:


我通常处理日期输入的方法是为控件创建自定义输入视图(例如,
UILabel
UITextField
)。我创建了自己的子类来处理这个问题,但是您可以在任何地方非常简单地临时完成它

  • 将控件的
    InputView
    属性设置为pickerView
  • 将控件的
    InputAccessoryView
    属性设置为您创建的
    UIToolbar
    UINavigationBar
  • 将自定义按钮添加到工具栏/导航栏
  • 如果要将其添加到
    UILabel
    ,请确保它可以成为第一响应者(有关说明,请参阅)


    如果您想玩得开心,还可以将pickerview嵌入到
    UIInputView
    中,这将为您提供与iOS中每个键盘输入相同的模糊效果。这部分可能需要一些调整,但最终效果非常好。

    我通常处理日期输入的方法是为控件创建自定义输入视图(例如,
    UILabel
    UITextField
    )。我创建了自己的子类来处理这个问题,但是您可以在任何地方非常简单地临时完成它

  • 将控件的
    InputView
    属性设置为pickerView
  • 将控件的
    InputAccessoryView
    属性设置为您创建的
    UIToolbar
    UINavigationBar
  • 将自定义按钮添加到工具栏/导航栏
  • 如果要将其添加到
    UILabel
    ,请确保它可以成为第一响应者(有关说明,请参阅)


    如果您想玩得开心,还可以将pickerview嵌入到
    UIInputView
    中,这将为您提供与iOS中每个键盘输入相同的模糊效果。这部分可能需要一些调整,但最终效果非常好。

    我通常处理日期输入的方法是为控件创建自定义输入视图(例如,
    UILabel
    UITextField
    )。我创建了自己的子类来处理这个问题,但是您可以在任何地方非常简单地临时完成它

  • 将控件的
    InputView
    属性设置为pickerView
  • 将控件的
    InputAccessoryView
    属性设置为您创建的
    UIToolbar
    UINavigationBar
  • 将自定义按钮添加到工具栏/导航栏
  • 如果要将其添加到
    UILabel
    ,请确保它可以成为第一响应者(有关说明,请参阅)


    如果您想玩得开心,还可以将pickerview嵌入到
    UIInputView
    中,这将为您提供与iOS中每个键盘输入相同的模糊效果。这部分可能需要一些调整,但最终效果非常好。

    我通常处理日期输入的方法是为控件创建自定义输入视图(例如,
    UILabel
    UITextField
    )。我创建了自己的子类来处理这个问题,但是您可以在任何地方非常简单地临时完成它

  • 将控件的
    InputView
    属性设置为pickerView
  • 将控件的
    InputAccessoryView
    属性设置为您创建的
    UIToolbar
    UINavigationBar
  • 将自定义按钮添加到工具栏/导航栏
  • 如果要将其添加到
    UILabel
    ,请确保它可以成为第一响应者(有关说明,请参阅)

    如果您想获得更多乐趣,还可以将pickerview嵌入到
    UIInputView
    中,这将为您提供
    - (void)datePickerDidCancelled:(CustomDatePicker *)picker
    {
        [self dismissViewControllerAnimated:YES completion:nil];
    }
    
    - (void)datePicker:(CustomDatePicker *)picker dateDidSelected:(NSDate *)date
    {
        NSLog(@"selectedDate: %@", date);
        [self dismissViewControllerAnimated:YES completion:nil];
    }