2012-12-31 33 views
0

我有一個從Storyboard segue調用的登錄視圖控制器;當用戶正確登錄時,我需要關閉當前的ViewController,返回調用者ViewController並隱藏登錄按鈕。如何從被調用的ViewController修改發件人ViewController?

我該如何引用發件人ViewController來隱藏按鈕?我是否必須將「根」ViewController的實例傳遞給登錄名,還是有另一種方式?

回答

1

使用代表團。

爲了您DetaliViewControler創建一個協議,就像

@protocol DetailViewControllerDelegate <NSObject> 
-(void)successFullyLoggedInOnController:(DetailViewController *) controller; 
@end 

添加一個委託聲明DetailViewController界面像

@property (weak) id<DetailViewControllerDelegate> delegate; 

充分利用MasterViewController符合協議。

-(void)successFullyLoggedInOnController:(DetailViewController *) controller 
{ 
    [self.loginButton setHidden:YES]; 
} 

現在MasterViewController顯示DetailViewController之前,能源部像

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"DetailViewSegue"]) { 
     DetailViewController *vc = segue.destinationViewController; 
     vc.delegate = self; 
    } 
} 

在DetailViewController曾經在那裏進入和驗證呼叫

[self.delegate successFullyLoggedInOnController:self]; 

憑證和罷免DetailViewController

+0

非常感謝,它運行完美 – Cris

1

您應該使用委派。用另一個代表的按鈕製作VC。登錄成功後,您將關閉VC並調用委託方法來隱藏該按鈕。

相關問題