我需要隐藏一个uiimageView,这是从弹出窗口内的uiswitch触发的动作中。
我正在使用这件代码,但是在敲击UisWitch时它无能为力,可能是因为UisWitch在弹出视图中。
此代码在iPhone上非常有效,但是在iPad上不起作用,并且UIImageView不会隐藏。为什么?
- (IBAction)toggleImage:(id)sender {
if ([sender isOn]){
self.myImage.hidden = NO;
} else {
self.myImage.hidden = YES;
}
}
uiimageView连接到插座,Uiswitch连接到插座和动作。
请帮忙,谢谢。
由于与弹出窗口相互作用的开关与我们要更改的图像视图在基础(呈现(VC上,因此适当的方法是使基础VC成为委托popover。
// MyPopoverVC.h
@protocol PopoverDelegate <NSObject>
- (void)popover:(MyPopoverVC *)vc changedSwitchTo:(BOOL)on;
@end
@interface MyPopoverVC : UIViewController
@property (nonatomic, weak) id<PopoverDelegate>delegate;
// ...
@end
在弹出VC的实现中(重要:开关的IBACTION应将其连接到popover VC(...
- (IBAction)toggleImage:(UISwitch *)sender {
[self.delegate popover:self changedSwitchTo:sender.on];
}
在介绍VC中,将其声明为符合该<PopoverDelegate>
协议。在提出弹出窗口之前,请初始化代表...
MyPopoverVC *myPopoverVC = [[MyPopoverVC alloc] init...
myPopoverVC.delegate = self;
也在介绍VC中,实现委托协议...
- (void)popover:(MyPopoverVC *) changedSwitchTo:(BOOL)on {
self.myImage.hidden = !on;
}