这可能是一个简单的问题,但我无法弄清楚我错过了什么。
在 ViewControl.h 我声明了 UIColor
@property (nonatomic, strong) UIColor * myColor;
在 ViewControl.m 我有一个方法可以做一些事情并返回新的 UIColor
@synthesize myColor = _myColor;
在 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;
}
我的问题从这里开始:我有两种方法可以更改 textview 字体和背景颜色
- (IBAction)btnFontColorPopUpMenu:(id)sender
{
[self ShowColorPopUpView];
tvTweetDetails.textColor = [self returnColor];
}
- (IBAction)btnTextViewBackGroundColor:(id)sender
{
[self ShowColorPopUpView];
tvTweetDetails.backgroundColor = [self returnColor];
}
现在的问题是,当我调用它返回的方法时,它会返回 RED,如果我再次调用它,它会返回 BlackColor。
如何调用该方法并将颜色更改为新颜色,然后返回。我想直接获得黑色。
我想先执行该方法,然后返回颜色,但发生的是在执行该方法之前分配颜色。
我希望我把问题说清楚了。