2013-10-07 151 views
0

我開發一個iOS應用,將它們輸入憑證的基礎上進行身份驗證的用戶庫中點擊刪除視圖控制器。上的按鈕

我做的是什麼,從視圖控制器說TestViewController當用戶點擊使用下面的代碼按鈕,我就TestViewController頂部設置一個新的視圖控制器LoginScreenViewController

LoginScreenViewController * LoginScreen = [[LoginScreenViewController alloc] initWithNibName:nil bundle:nil]; 

[self.view addSubview:LoginScreen.view]; 

LoginScreenViewController包含Cancel按鈕,關於這一點我想刪除LoginScreenViewController。爲此,我使用以下代碼

[self.view removeFromSuperview]; 

問題是當我執行此代碼時,我的應用程序崩潰。

由於我LoginScreenViewController由庫定義的,我希望它是獨立於呼叫者的實現。

編輯
LoginScreenViewController.m我用下面的代碼的事件處理程序添加到取消按鈕。

[button addTarget:self action:@selector(CancelButtonHandler:) forControlEvents:UIControlEventTouchUpInside]; 

當我點擊Cancel按鈕時,該應用程序崩潰。即使CancelButtonHandler不包含任何代碼行。

+0

你能告訴你得到了什麼錯誤嗎?並確保[self.view removeFromSuperview]中self.view不爲零; – BaSha

回答

1

您正試圖刪除錯誤的觀點。要刪除LoginScreen視圖,請執行以下操作:

[LoginScreen.view removeFromSuperview]; 
+0

必須在'LoginScreenViewController'中定義處理'Cancel'按鈕功能的事件。所以我只能使用'self.view'。 – Mayank

+0

但我想你的自我仍然指向TestViewController,而不是LoginScreenViewController,嘗試推入LoginScreenViewController而不是添加爲子視圖。 – BaSha

+0

推送視圖控制器,我需要知道庫用戶正在使用'NavigationController'。只有這樣我才能通過'LoginScreenViewController'推送。我對麼 ? – Mayank