在UIAlertView的子类被解除后运行一个方法

时间:2011-02-25 05:14:18

标签: iphone objective-c xcode delegates uialertview

我使用UIAlerView子类创建自定义登录页面。现在,当我点击按钮时,它会打开UIAlertView我想根据按下哪个按钮来更改主视图。

但是因为UIAlerView的所有实现都在另一个类中,但是我改变了视图,但它没有保留它,因为该类变量没有得到它的值。

任何人都可以帮我这个吗?如果需要,我可以发布代码。

谢谢你, 安基塔

2 个答案:

答案 0 :(得分:1)

您可以对alertView使用如下所示的自定义init方法,并将_sender存储在全局变量或类变量中。像

id sender;
- (id)initWithSender:(id)_sender
{
    self = [super init];
    if (self) {
        sender=_sender;
    }
    return self;
}
从RootVC / bgview初始化alertView,如下所示,并定义一个名为的方法

-(void) alertIndexSelected:(NSInterger) index;

{

//change the backgound view based on button selected }

在rootvc /你的主视图中。

  
  alertViewobj =[[alertView alloc] initWithSender:self];

当在alertview上选择按钮时,请调用以下方法,这将通知您的rootvc按下了哪个警报索引。使用以下alertview委托。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
[sender alertIndexSelected: buttonIndex];
}




答案 1 :(得分:1)

如果您打算使用委托方法,那么我认为您需要引用其中一些链接。

How to use custom delegates in Objective-C

How do I create delegates in Objective-C?

http://iosdevelopertips.com/objective-c/the-basics-of-protocols-and-delegates.html

我希望这能帮助你理解代表们。