0

簡単な質問かもしれませんが、何が欠けているのかわかりませんでした。

ViewControl.h で UIColor を宣言しました

@property (nonatomic, strong) UIColor * myColor;

ViewControl.m には、何かを実行して新しい UIColor を返すメソッドがあります。

@synthesize myColor = _myColor;

In ViewDidLoad メソッド

- (void)viewDidLoad
{
    myColor = [UIColor RedColor];
}

-(void) ShowColorPopUpView
{
    if (!self.wePopoverController)
    {

        ColorViewController *contentViewController = [[ColorViewController alloc] init];
        contentViewController.delegate = self;
        self.wePopoverController = [[WEPopoverController alloc] initWithContentViewController:contentViewController];
        self.wePopoverController.delegate = self;
        self.wePopoverController.passthroughViews = [NSArray arrayWithObject:self.navigationController.navigationBar];

        [self.wePopoverController presentPopoverFromRect:self.tvTweetDetails.frame
                                                  inView:self.view
                                permittedArrowDirections:(UIPopoverArrowDirectionUp|UIPopoverArrowDirectionDown)
                                                animated:YES];

    } else
    {
        [self.wePopoverController dismissPopoverAnimated:YES];
        self.wePopoverController = nil;
    }
}

-(void) colorPopoverControllerDidSelectColor:(NSString *)hexColor
{
    _myColor = [GzColors colorFromHex:hexColor];
    [self.view setNeedsDisplay];
    [self.wePopoverController dismissPopoverAnimated:YES];
    self.wePopoverController = nil;
}
- (UIColor *) returnColor
{
    return _myColor;
}

私の質問はここから始まります: テキストビューのフォントと背景色を変更するには2つの方法があります

- (IBAction)btnFontColorPopUpMenu:(id)sender
{
    [self ShowColorPopUpView];
    tvTweetDetails.textColor = [self returnColor];
}
- (IBAction)btnTextViewBackGroundColor:(id)sender
{
    [self ShowColorPopUpView];
    tvTweetDetails.backgroundColor = [self returnColor];
}

今の問題は、メソッドを呼び出すと、RED が返され、再度呼び出すと BlackColor が返されることです。

メソッドを呼び出して Color を新しいものに変更してから返すにはどうすればよいですか。黒色を直接取得したい。

最初にメソッドを実行してから色を返したいのですが、メソッドを実行する前に色を割り当てます。

質問を明確にしたことを願っています。

4

1 に答える 1