2013-07-16 158 views
1

我是iOS開發新手,目前一直在創建後退按鈕。我已經將popViewControllerAnimated方法放在敲擊按鈕上,我也在調試模式下測試它,並且後​​退按鈕方法正在調用,但popViewControllerAnimated不起作用。後退按鈕沒有響應?

這是代碼。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake((self.view.frame.size.height-100), 30, 80, 20)]; 
    [backButton setTitle:@"Back" forState:UIControlStateNormal]; 
    [backButton addTarget:self action:@selector(BackButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:backButton]; 

    //some piece of code... 

}//end of viewDidLoad method 


-(void)BackButtonClicked: (id)sender{ 
    [self.navigationController popViewControllerAnimated:YES]; 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"testing" message:@"some message" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:@"NO", nil]; 
    [alert show]; 

} 

在點擊返回按鈕時顯示此警報,但屏幕不回退。

有關此問題的任何幫助將非常可觀。

我在我以前的viewController編寫這些代碼叫這個的viewController

PlaceTranslatedDetailsViewController *secondViewController = 
[self.storyboard instantiateViewControllerWithIdentifier:@"placeTranslatedDetail"]; 
[self presentViewController:secondViewController animated:YES completion:NULL]; 

然而,這種的viewController和以前的viewController設計編程

+3

你的視圖控制器推送什麼?它是如何加載和呈現的? – pdrcabrod

+0

編寫本代碼的視圖控制器 – iPatel

+0

請現在審查,我對我的問題的內容做了一些更改 –

回答

1

使用此代碼:

[self dismissViewControllerAnimated:YES completion:NULL] 
+0

非常感謝Kirti,它的工作原理! :) –

+0

當前屏幕正在向後滑動按下按鈕,是否可以將其滑動到右側攻絲? –

+0

您還在右側添加了uibarbuttonitem –

2

如果您viewcontroller不是一個uinavigationcontroller比方法的rootviewcontrollerpopViewControllerAnimated將不起作用。所以你需要有一個uinavigationcontroller,以推/ viewcontroller

所以在你的情況下,你必須使用[self dismissViewControllerAnimated:YES completion:nil];而不是popViewController,因爲你提出了一個模態的視圖控制器。

+0

這應該是被接受的答案。 +1來解釋問題。 – Amar

+1

@Amar謝謝,沒關係,我只希望他讀到我在這裏解釋的。 – soryngod

2

您還沒有出示您的視圖控制器作爲導航堆棧的一部分,所以使用popViewControlleranimated:是行不通的。

您需要使用

[self dismissViewControllerAnimated:YES completion:NULL]; 

代替。

1

一推(經由pushViewController或情節串連圖板推賽格瑞)將需要popViewController

呼叫甲呈現視圖(經由presentVewController或情節串連圖板模態賽格瑞)需要一個dismissViewController呼叫。