Objective-C:从AppsDelegate呈现/推送ViewController后后退按钮消失

Posted

技术标签:

【中文标题】Objective-C:从AppsDelegate呈现/推送ViewController后后退按钮消失【英文标题】:Objective-C: Back Button disappear after present/push ViewController from AppsDelegate 【发布时间】:2018-06-18 09:49:42 【问题描述】:

下面的图片是我的故事板,我希望在AppDelegate 展示Upcoming VC。下面是我在AppDelegate 的代码,我在调用时设法呈现Upcoming VC

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc=[sb instantiateViewControllerWithIdentifier:@"Upcoming"];
UINavigationController *nv = [[UINavigationController alloc] initWithRootViewController:vc];
nv.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self.window.rootViewController presentViewController:nv animated:YES completion:nil];

Upcoming VC,我设法展示了navigationBar with title and background colour,但我的后退按钮< 仍然不见了。我的后退按钮是自动生成的。

-(void)viewWillAppear:(BOOL)animated

    self.navigationController.navigationBar.hidden = NO;

    [self.navigationItem setHidesBackButton:FALSE];
    //====Make the navigation Bar appear===
    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = nil;

    //=== Set the navigation Back < color
    self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
    [self.navigationController.navigationBar setBarTintColor : [ UIColor grayColor]];
    //=== Set the navigation Bar text color
    [self.navigationController.navigationBar
    setTitleTextAttributes:@NSForegroundColorAttributeName : [UIColor whiteColor]];
    self.navigationController.navigationBar.translucent = NO;

请帮忙。

【问题讨论】:

【参考方案1】:

那你有什么期待呢?

后退按钮仅在您从现有 ViewController 推送 UpcomingVC 时可见 请记住,仅在故事板中使用导航栏现在将自动显示后退按钮。

您可以创建完整的视图控制器层次结构

喜欢

UpcomingVCHomeVC 推送,然后您可以将HomeVC 设置为嵌入在UINavigationController 中的根视图控制器,然后您可以推送到下一行 UpcomingVC 动画为假

【讨论】:

【参考方案2】:

你可以试试这个 故事板到故事板

ViewControllerName * next = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewControllerName"];
[self.navigationController pushViewController:next animated:YES];

您必须注册笔尖。

【讨论】:

以上是关于Objective-C:从AppsDelegate呈现/推送ViewController后后退按钮消失的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C:从本地通知打开 URL

从 Objective-C 访问 Swift 扩展

从 Objective-C 里的 Alloc 和 AllocWithZone 谈起

从 Objective-C 调用 Python 代码

Objective-C:如何从 POST 方法返回响应?

从objective-c++调用swift函数