2016-08-17 172 views
0

我有一個IBAction委託問題。我通過Interface Builder在xib文件中創建按鈕,並希望在另一個控制器中使用它。IBAction委託人

按鈕是可點擊的,我沒有看到任何錯誤,但沒有顯示Alert或NSLog。如果我試圖在LetterView.m中做NSLog,它工作得很好,但不在ViewController中。我該怎麼辦?

感謝您的幫助。

我在做什麼目前是:

LetterView.h

#import <UIKit/UIKit.h> 

@class LettersView; 

@protocol ButtonHint <NSObject> 

-(void)hintButtonView:(LettersView*)letterView; 

@end 

@interface LettersView : UIView @property (strong, nonatomic) IBOutlet UIView *lettersView; 

- (IBAction)hintButton:(id)sender; 
- (IBAction)removeButton:(id)sender; 

@property (nonatomic, assign) id <ButtonHint> hintDelegate; 

@end 

LetterView.m

-(IBAction)hintButton:(id)sender { 
    [self.hintDelegate hintButtonView:self]; 
} 

ViewController.h

@interface GameViewController : UIViewController <ButtonDisplayChar, ButtonHint> 

ViewController.m

-(void)hintButtonView:(LettersView *)letterView { 
    NSLog(@"DSfdfsadasda"); 
    [self addAlert:@"HINT" andMessage:helpstr andButton:@"Thanks"]; 
} 
+0

是否指定hintDelegate視圖控制器? –

+0

我應該在哪裏做? –

+2

在視圖控制器中,您需要設置'yourLetterViewObject.hintDelegate = self;' –

回答

0

您可以通過添加按鈕 例子的目標在其他瀏覽器做的事:在你的廈門國際銀行有按鈕。

在其他視圖控制器中使用該按鈕作爲目標。

例如: 先在

var letterVw  : LetterView? 

letterVw.myFirstButton.addTarget(self, action: #selector(myClass.pressed(_:)), forControlEvents: .TouchUpInside) 

func pressed(sender: UIButton!) { 

}