2013-08-09 3 views
1

У меня есть контроллер просмотра, в котором есть UIButton. У меня есть UIView в этом контроллере просмотра, который принимает подписи. Существует файл .h и .m, связанный с UIView. Файл UIView's.m имеет метод стирания. Я хочу, чтобы UIButton в моем контроллере просмотра мог вызвать этот метод стирания, но я не уверен, как это сделать. Вот код, который я пытался:Просмотреть метод вызова контроллера на подвале

-(IBAction)clearButtonPressed:(id)sender 
{ 
    SignatureView *SC = [[SignatureView alloc] init]; 
    [SC erase]; 
    NSLog(@"Pressed"); 
} 

В NSLog работает, так что я знаю, что действие вызывается. Что дает?

EDIT:

Ответ выполнен; вроде.

NSLog(@"Erased"); работает, поэтому я знаю, что кнопка работает, но она не стирается. Вот код Стирание:

- (void)erase { 
    path = [UIBezierPath bezierPath]; 
    [self setNeedsDisplay]; 
    NSLog(@"Erased"); 
} 
+0

Вы создаете новый экземпляр 'SignatureView', а затем вызываете' erase' на нем, а затем игнорируете его навсегда. Вы должны вызвать 'erase' на экземпляре, который уже имеет ваш контроллер представления. –

+0

@CarlVeazey - Понял. Где инициализируется UIView? –

+0

Либо где-нибудь в вашем коде, либо в банке/раскадровке. Найдите строки, такие как 'SignatureView alloc' или' SignatureView new', а также посмотрите на иерархию представлений в nib, исследуя класс каждого представления с помощью Inspector. –

ответ

0

Что вы сделали, чтобы создать новый экземпляр SignatureView и вызвать этот экземпляр для удаления.

Если вы используете перо, то outlet вид вам ViewController назвал такие как aSignatureView и в clearButtonPressed вызова [aSignatureView erase];

Если вы добавляете SignatureView через код, то вы должны иметь представление в качестве одного из членов экземпляров, таких как aSignatureView, а затем позвоните [aSignatureView erase];

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