2013-04-23 72 views
3

我是iPhone開發新手。我創建了一個應用程序,使用導航欄使用故事板。我的問題是,我打開一個viewB編程從viewA點擊按鈕,它成功。現在回到viewA我已經使用取消按鈕。當我點擊取消按鈕(上一個)時,打開(viewA),但導航欄未顯示。和viewA有導航欄控件,但是viewB沒有。導航欄隱藏,當我回到iOS查看

在此先感謝

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    EditViewController *viewController = (EditViewController *)[storyboard instantiateViewControllerWithIdentifier:@"EditViewController"]; 

    [self presentViewController:viewController animated:NO completion:NULL]; 

查看B:

- (IBAction)cancelButtonPressed:(id)sender { 
    if (lables != NULL) { 

     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
     ScannerViewController *viewController = (ScannerViewController *)[storyboard instantiateViewControllerWithIdentifier:@"ScannerViewController"]; 

     [self presentViewController:viewController animated:NO completion:NULL]; 

    } 
    else{ 

     [self.navigationController popViewControllerAnimated:YES]; 
    } 
+2

如何顯示和關閉viewB?如果您需要幫助,請分享您的代碼。 – nsgulliver 2013-04-23 11:34:18

+2

從viewA你提出或推動viewB? – AMohan 2013-04-23 11:34:39

回答

4

您呈現viewB &使用self.navigationController彈出它,你應該使用一種方法,既可以使用presentviewcontroller & dismissviewcontroller。

[self dismissViewControllerAnimated:YES completion:nil]; 

對於您的情況最好是使用UINavigationController

e.g

推:

[self.navigationController pushViewController:viewController animated:YES]; 

關閉

[self.navigationController popViewControllerAnimated:YES]; 
+1

感謝它的工作。 – 2013-04-23 11:47:38

-1

當您需要時(例如viewDidAppear方法)使用,

[self.navigationController setNavigationBarHidden:NO animated:YES]; 
+0

我這樣做使用故事板爲特定的viewController – 2013-04-23 11:58:15

0

如果使用故事板,則不需要以編程方式顯示viewController。按住ctrl,從viewCA拖動到viewCB並從彈出菜單中選擇模型。

對於駁回viewController

[self dismissViewControllerAnimated:YES completion:nil]; 

如果你想要的任何數據發送到viewCB給賽格瑞標識符(例如 「segid」)

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"segid"]) 
    { 
     //write your code here. 
    } 
} 

這種方法會自動調用(delegate)同時呈現(推送)viewController

+0

謝謝,但我編程方式添加按鈕導航欄。在導航欄按鈕上單擊我打開viewB。 – 2013-04-23 11:57:22

+1

然後在故事板中添加按鈕到導航欄。拖放導航欄中的按鈕。按住ctrl +從按鈕拖放到viewCB。如上所述。如果您想爲該按鈕創建ibAction並將其與按鈕鏈接。 – AMohan 2013-04-23 12:02:24

0

我也遇到了同樣的問題。解決方案是從不選擇模式,因爲模態覆蓋了整個視圖,這就是爲什麼後屏導航控制器沒有顯示。所以不要連接後退按鈕,只需編寫後退按鈕的代碼即可。

[self dismissViewControllerAnimated:YES completion:nil];