2015-02-06 65 views
0

我使用了很多UIAlertViews,现在我只想要一个自包含的类,它显示带有Yes/No按钮的UIAlertView。这是我在代码的想法:iOS你确定对话框

[DXPopUp areYouSure:@"SOME MESSAGE HERE" callback:^(BOOL isSure) { 
    ... do something ... 
}]; 

这种方法的问题是内部DXPopUp委托:

- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 

不会被调用,因为自引用已经走了,我明白了。所以我通过使其成为一种方法而不是类方法来解决此问题,并在调用类中创建一个强引用。

但是我想知道我的第一个想法是否可以实现,因为我觉得这更清洁?

+1

我有一个类似的问题早,收到了一些非常好的答案(http://stackoverflow.com/questions/14669566/how-to-access-user-input-from-uialertview-completion-block -without授)。同样在iOS8 +中,您可以使用内置的UIAlertController,它非常好地使用闭包。 – 2015-02-06 14:20:07

+0

有两个问题:你如何初始化UIAlertView以及用于委托它?总之:请添加更多相关的代码。 – 2015-02-06 14:24:25

+0

使用UIAlertController .....它默认使用UIActions块。没有代表需要。此外,UIAlertView在iOS 8中已弃用。 – 2015-02-06 14:25:23

回答

1

是的,你可以做到这一点上创建一个UIAlertView中类别和使用的类别相关对象:Associated Objects

与块创建UIAlertViews看到这个库。

UIAlertView+Blocks

+0

谢谢!我觉得这很愚蠢,因为我应该知道这一点;)! – Haagenti 2015-02-06 14:29:55