【发布时间】:2017-01-17 08:52:33
【问题描述】:
我有 UIView,称为 Popup 和从 UIViewContorller(ParentVC) 弹出 在 UIView 我有 4 个按钮。按下按钮时,需要从(ParentVC)打开新的控制器。我正在使用 Delegate,这是我的错误吗?
//Popup.h
@protocol PopupDelegate
@required
- (IBAction)stepOfRestoration:(id)sender;
- (IBAction)clientCall:(id)sender;
- (IBAction)readyTo:(id)sender;
- (IBAction)givePhone:(id)sender;
@end
@interface Popup : PSCustomViewFromXib
@property (nonatomic, assign) id <PopupDelegate> delegate;
@property (strong, nonatomic) IBOutlet UIView *view;
- (IBAction)stepOfRestoration:(id)sender;
- (IBAction)clientCall:(id)sender;
- (IBAction)readyTo:(id)sender;
- (IBAction)givePhone:(id)sender;
在 .m 中我有这个:
@synthesize delegate;
....
- (IBAction)stepOfRestoration:(id)sender {
[self.delegate buttonPressed];
}
这是父.m
...
CGRect rect = CGRectMake(0,0,200,300);
Popup *popup1 = [[Popup alloc] initWithFrame:rect];
popup1.delegate = self;
....
-(void)buttonPressed {
[self performSegueWithIdentifier:@"infoSegue" sender:nil];
}
那是我的错误吗?
【问题讨论】:
-
if ( [delegate respondsToSelector:@selector(buttonPressed)] ){[delegate buttonPressed]; }同样检查一下控件是否进入了 if 循环。
标签: ios objective-c uiview uiviewcontroller delegates