通过另一个类调用方法

Shiim

在我的ViewController.m中,我已经声明

@interface ViewController ()
{
    //...
    UIAlertView * alertView;
    //...
}

Alertview在此处创建:

- (void)iCloudTeavitused {
    //...
    //If the alertview happens to be previously open, it will be dismissed (I use a corresponding flag to indicate this)
    [alertView dismissWithClickedButtonIndex:alertView.cancelButtonIndex
                                    animated:YES];
    //...
    alertView = [[UIAlertView alloc] initWithTitle:AMLocalizedString(@"iCloud is available", @"iCloud is available")
                                           message:AMLocalizedString(@"This app stores", @"This app automatically stores your settings in the cloud to keep them up-to-date across all your devices")
                                          delegate:nil
                                 cancelButtonTitle:nil
                                 otherButtonTitles:AMLocalizedString(@"OK_iCloudYES", @"OK"), nil];
    [alertView show];
    //...
}

我通过致电来定位单词

LocalizationSetLanguage(@"en");

本地化发生在Localization.m中,我也这样做:

ViewController* viewController = [[ViewController  alloc]init];
[viewController iCloudTeavitused];

因此,在某些情况下,也会从ViewController.m中调用iCloudTeavitused。问题在于,当它需要通过调用来关闭警报视图(如果一个碰巧被打开)时,

[alertView dismissWithClickedButtonIndex:alertView.cancelButtonIndex
                                animated:YES];

在iCloudTeavitused中,实际上不会调用此方法(例如,在创建另一个alertView DOES时会调用)。

我的猜测是解雇旧版本alertView不会被解雇,因为我是通过Localization.m来称呼它的。

我是对的,我在代码中做错了什么?

阿比纳夫

我认为这里的问题可能是您正在处理ViewController的多个实例。如果您使用ViewController的一个实例创建并显示警报视图,然后尝试通过另一个实例将其关闭,则该视图将不起作用。您应该将UIAlertView的实例保存在某个单例对象或您的应用程序委托上,并在呈现新对象之前引用该对象以将其关闭。或者您可以使用浏览窗口中的所有子视图并关闭UIAlertView(如果有)。

for (id aSubview in [iView valueForKey:@"subviews"]) {
    if ([aSubview isKindOfClass:[UIAlertView class]]) {
        [(UIAlertView *)aSubview dismissWithClickedButtonIndex:0 animated:NO];
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从另一个类中迅速调用另一个方法?

来自分类Dev

从另一个Java类调用静态方法

来自分类Dev

从另一个类调用paint()方法?

来自分类Dev

从Python的另一个类内部调用方法

来自分类Dev

从另一个类调用getter方法

来自分类Dev

如何从另一个类调用@selector方法

来自分类Dev

从另一个类调用方法

来自分类Dev

来自另一个类的调用方法+排序

来自分类Dev

另一个类的故障调用方法

来自分类Dev

从另一个类调用Qt方法?

来自分类Dev

模拟另一个类方法的内部调用

来自分类Dev

无法从另一个类调用接口方法

来自分类Dev

从另一个类Ruby调用实例方法

来自分类Dev

在另一个viewController中调用类方法

来自分类Dev

打字稿:调用另一个类的“方法”

来自分类Dev

Repaint()方法在另一个类中调用

来自分类Dev

我可以通过另一个类的方法调用python对象的字典吗?

来自分类Dev

通过调用另一个方法退出方法

来自分类Dev

从对象数组另一个类调用方法?

来自分类Dev

不能从另一个调用类的方法?

来自分类Dev

Flutter:如何从另一个类调用方法?

来自分类Dev

如何从另一个小写的类调用方法?

来自分类Dev

从Python的另一个类内部调用方法

来自分类Dev

如何从另一个类调用@selector方法

来自分类Dev

如何从另一个类调用get方法?

来自分类Dev

从另一个类调用Qt方法?

来自分类Dev

如何从另一个类调用void方法

来自分类Dev

通过从另一个类调用方法来更新信息

来自分类Dev

通过调用另一个方法退出方法