在popover(iPad)中的UISWitch Action隐藏UIImageView



我需要隐藏一个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;
}

相关内容

  • 没有找到相关文章

最新更新