3

我是 iPhone 开发的新手。我使用storyboard创建了一个使用导航栏的应用程序。我的问题是我在按钮单击时以编程方式从 viewA打开viewB并且它成功。现在回到viewA ,我使用了取消按钮。当我单击取消按钮(上一个)时,(viewA)打开但导航栏未显示。和 viewA 有导航栏控件,但viewB没有。

提前致谢

查看 A

 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];
    }
4

5 回答 5

5

您正在呈现 viewB 并使用它弹出它self.navigationController,您应该使用一种方式,或者使用 presentviewcontroller 和dismissviewcontroller。

[self dismissViewControllerAnimated:YES completion:nil];

对于您的场景,最好使用UINavigationController

例如

推动:

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

结束

[self.navigationController popViewControllerAnimated:YES];
于 2013-04-23T11:41:01.780 回答
0

我也面临同样的问题。解决方案是永远不要在单击后退按钮时选择模态,因为模态覆盖了您的整个视图,这就是为什么在后屏幕上没有显示导航控制器的原因。所以不要连接返回按钮,只需编写返回按钮的代码。

[self dismissViewControllerAnimated:YES completion:nil];
于 2014-07-03T10:35:24.837 回答
0

如果您使用情节提要,则无需以编程方式呈现 viewController。按住 ctrl,从viewCAto拖动viewCB并从弹出菜单中选择模型。

对于解雇viewController

[self dismissViewControllerAnimated:YES completion:nil];

如果您想向 viewCB 发送任何数据,请提供 segue 标识符(例如“segid”)

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

此方法将delegate在呈现(推送)时自动调用()viewController

于 2013-04-23T11:54:52.603 回答
0

您必须使用导航控制器,在 StoryBoard 中选择视图 A,编辑器菜单 > 嵌入 > 导航控制器。

http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/NavigationControllers.html

于 2013-04-23T11:35:47.490 回答
-1

当您需要时(例如 viewDidAppear 方法)使用,

[self.navigationController setNavigationBarHidden:NO animated:YES];
于 2013-04-23T11:49:02.017 回答