【问题标题】:How to include a new view controller to an existing navigation view如何将新的视图控制器包含到现有的导航视图中
【发布时间】:2013-11-02 03:13:48
【问题描述】:

我正在开发一个基本的,它有一个这样的故事板:

当 UIButton 被按下时,URL 被加载。如果 URL 请求成功,那么我会打开“成功”视图(在右侧)。

一切正常,但我似乎无法让导航控制器出现在 Success 视图上。 有人可以帮我吗?另外,如果导航可以在该视图上进行,我将如何添加“返回”按钮以将用户带回主视图?

到目前为止,这是我的代码:

UIStoryboard * mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
NSLog(@"%@", status_code);
UIViewController *linkSuccess = [mainStoryboard instantiateViewControllerWithIdentifier:@"linkSuccess"];
[self presentViewController:linkSuccess
                   animated:YES
                 completion:NULL];

彼得

【问题讨论】:

    标签: ios objective-c xcode uiview uinavigationcontroller


    【解决方案1】:

    控制从我的应用控制器(屏幕截图左下角的黄色小图标)拖动到 Success 视图控制器,它应该会弹出询问您哪种类型的 segue 的框。因为这是一个导航控制器,所以你需要一个 push segue。单击从我的应用控制器到故事板中代表您的新 segue 的成功控制器的新箭头,并在属性检查器中为其命名,可能类似于 showSuccess

    然后在你的 URL 请求成功代码中使用这个:

    [self performSegueWithIdentifier:@"showSuccess" sender:self];
    

    或者,如果您想自己实例化它(如您在上面的代码中所做的那样),您需要将它添加到导航控制器。例如:

    UIStoryboard * mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    NSLog(@"%@", status_code);
    UIViewController *linkSuccess = [mainStoryboard instantiateViewControllerWithIdentifier:@"linkSuccess"];
    [self.navigationController pushViewController:linkSuccess animated:YES];
    

    【讨论】:

    • 我刚刚发现了 segue 类功能,并认为它可能是这样的。我会试一试的!
    • 它有效,但是当我单击后退按钮时,它并没有让我返回。相反,我得到一个后退屏幕,然后是另一个后退按钮,上面写着“我的应用程序”?
    • 你是同时做代码 sn-ps 还是只做一个?导航控制器跟踪堆栈中的应用程序,当您返回时将遍历它们。因此,如果它有效,但没有返回,则意味着导航控制器添加了两个视图而不是一个。后退按钮标题也应该是前一个视图控制器的标题 - 这是您添加太多的线索。
    • 点击后它会自动转到该视图,然后阅读我的代码并转到该视图。所以它会去那个视图两次。如何防止它成为默认操作?
    • 我的意思是要么使用情节提要中的 segue,要么调用 [self.navigationController pushViewController:linkSuccess animated:YES];,但不能同时使用两者。听起来您已经完成了这两个操作,这意味着情节提要推送了一个控制器,而您的 My App 控制器推送了另一个副本,这两个副本。
    【解决方案2】:

    您必须从“我的应用”控制器扩展成功视图控制器。单击“我的应用”视图控制器标题,按住 ctrl + 单击触控板 + 将其移动到成功视图控制器。

    应该可以工作

    【讨论】:

    • 我试过了。我得到三个选项:模态、推送和自定义。这三个都不起作用。彼得
    猜你喜欢
    • 1970-01-01
    • 2013-09-06
    • 2021-09-20
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多