2011-02-25 22 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]; 
}