2013-04-30 3 views
1

Я выполнил эскиз руки учебник отКак вызвать метод UIView из другого ViewController в прошивкой

http://mobile.tutsplus.com/tutorials/iphone/ios-sdk_freehand-drawing/. 

мне нужно назвать его - (void)drawBitmap;- (void)drawBitmapGreen; методы, на мой взгляд контроллер для изменения цвета на кнопку действия. Я сделал что-то вроде ниже.

#import <UIKit/UIKit.h> 
#import "checklistController.h" 
@interface SmoothedBIView : UIView 

@property(nonatomic,assign) checklistController *trnsferColor; 
- (void)drawBitmapGreen; 
@end 

@implementation SmoothedBIView 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self drawBitmapred]; 
    [self drawBitmapGreen]; 
    [self setNeedsDisplay]; 
    [path removeAllPoints]; 
    ctr = 0; 
} 
- (void)drawBitmapGreen 
{ 
    UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0); 
    if (!incrementalImage) // first time; paint background white 
    { 
     UIBezierPath *rectpath = [UIBezierPath bezierPathWithRect:self.bounds]; 
     [[UIColor clearColor] setFill]; 
     [rectpath fill]; 
    } 
    [incrementalImage drawAtPoint:CGPointZero]; 
    [[UIColor greenColor] setStroke]; 
    [path stroke]; 
    incrementalImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    //SmoothedBIView.trnsferColor = self; 
} 

...

@interface checklistController : UIViewController 

@property(nonatomic,strong) IBOutlet UIView *vPaintPreview; //SmoothedBIview outlet for hidden and unhidden property. 
@property(nonatomic,assign) SmoothedBIview *SBIView; 
-(IBAction)editvImage; 
-(IBAction)RedSketch; 
-(IBAction)GreenSketch; 

Обновленный код

@implementation file 

-(IBAction)GreenSketch 
{ 
    SmoothedBIView *SBIview = [[SmoothedBIView alloc] init]; 
    [SBIview drawBitmapGreen]; 
} 

Что я здесь делаю неправильно?

+0

принять вид присвоить класс к нему сделать его свойство затем вызвать метод с использованием этого свойства – amar

+0

почему вы использовали, как это ('SmoothedBIView * SBIview = Я;') ? – Venkat

+0

@ML: Я видел этот метод в одной веб-ссылке. да, это неправильно и сбой кода :( –

ответ

0

Вы пробовали следующее:

-(IBAction)GreenSketch 
{ 
    SmoothedBIView *SBview = [[SmoothedBIView alloc] init]; 
    [SBview drawBitmapGreen]; 
    [SBview setNeedsDisplay]; 

} 
+0

see my - (void) touchesEnded: (NSSet *) затрагивает код событияEvent: (UIEvent *). Здесь нужно немного настроить ... –

+0

почему вы используете метод действия, так как u уже использует метод touch end? –

+0

, когда вы нажимаете на кнопку, setneedsdisplay будет вызываться в этом методе действий, в то время касание прекращено не будет называться. –

Смежные вопросы