如何将 UIColor 对象从一个类传递到另一个类



我正在使用下面的代码,我想将所选颜色传递给另一个类,但它给了我以下警告并且不起作用:

从 UICOLOR 强分配给 NSstring 的不兼容指针类型:

法典:

-(IBAction)showpickerview
{
    NEOColorPickerViewController *controller = [[NEOColorPickerViewController alloc] init];
    controller.delegate = self;
    //controller.selectedColor = self.currentColor;
    controller.title = @"Select Color";
    UINavigationController* navVC = [[UINavigationController alloc] initWithRootViewController:controller];
    [self presentViewController:navVC animated:YES completion:nil];
}
- (void)colorPickerViewController:(NEOColorPickerBaseViewController *)controller didSelectColor:(UIColor *)color 
{
    SecondClass *second = [[SecondClass alloc]init];
    second.selectColor = color;
    NSLog(@"selected color %@",second.selectColor);
    //UIColor *color1 = color;
    //const CGFloat *components = CGColorGetComponents(color.CGColor);
    //second.selectColor = [NSString stringWithFormat:@"%f,%f,%f,%f", components[0], components[1], components[2], components[3]];
    //NSLog(@"selected color %@",second.selectColor);
    [controller dismissViewControllerAnimated:YES completion:nil];
}

备选方案 1:

- (void)colorPickerViewController:(NEOColorPickerBaseViewController *)controller didSelectColor:(UIColor *)color{ 二等 *二等 = [[二等分配]初始化]; 第二。选择颜色 = 控制器。选择颜色; NSLog(@"selected color %@",second.selectColor);[控制器关闭视图控制器动画:是完成:无]; }

由于 NEOColorPickerBaseViewController 是 NEOColorPickerViewController 的一个实例,这应该可以工作。

备选方案2:

似乎您在第二类中选择的颜色是 NSString 而不是 UIColor。所以你得到的是这个警告。

最新更新