2011-02-25 43 views
2

我使用UIAlerView子类创建自定义登录页面。现在当我点击按钮时,它打开了UIAlertView我想基于哪个按钮被按下来改变主视图。UIAlertView的子类被解雇后运行方法

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

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

谢谢 安基塔

+0

您需要使用委托方法在两个类之间进行通信。 – Robin 2011-02-25 05:17:38

+0

请发布您的代码 – visakh7 2011-02-25 05:18:09

+0

@Robin:你能告诉我如何在两个类之间使用委托方法吗? – Anks 2011-03-15 09:32:11

回答

1

您可以使用自定义的init方法像下面alertView和_sender存储在全局或类变量。像

 
id sender; 
- (id)initWithSender:(id)_sender 
{ 
    self = [super init]; 
    if (self) { 
     sender=_sender; 
    } 
    return self; 
} 

从RootVC/bgview初始化alertView如下定义名为 在rootvc

-(void) alertIndexSelected:(NSInterger) index;

{

//change the backgound view based on button selected }

/方法的主视图。

 alertViewobj =[[alertView alloc] initWithSender:self];
当按钮被选中上alertview调用下面的方法

,这将通知您rootvc关于其被压警觉的指数。使用以下alertview委托。

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