与here描述的问题类似,但我的TabBar
实际上显示BackButton
上的NavigationBar
不是。{在问题中,我提供了解决问题的答案的链接,即NavigationController中有NavigationController
,我没有,所以这是一个不同的问题。
我的storyboard
的基本流程是登录(UIView
) - TabBar
(UITabBarController
) - NavigationController
(UINavigationController
) - 实际可见屏幕(UITableViewController
) - 发生问题的新TableView
(UITableViewController
)。
在新的实际可见screen
或TableView
顶部的NavigationBar
显示正常,我可以点击BackBarButton
应该在的一般区域它会返回,但没有BackBarButton
项可见。
我尝试更改颜色,在之前的ViewController
中分配颜色,确保它可见,等等。并且没有一个显示Back Button
。它似乎在那里,但没有显示。
有什么想法吗?从与我的问题类似的另一个问题来看,这似乎是iOS 9
特定的事情。
编辑我可以看出后面的按钮实际上在那里,但它上面没有标签或后退箭头。 如何让后面的标签可见?
编辑2
以下是视图控制器的viewDidLoad
方法,其中应显示后退按钮。
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
[self.navigationItem.backBarButtonItem setTintColor:[UIColor whiteColor]];
// Other unimportant stuff
}
我对这个视图控制器的看法是通过带有Push segue的故事板。代码如下。
- (void)segueToUser: (UIButton*)button {
long row = button.tag;
PFObject *PFQuote = [_recent quoteAtIndex:(row-1)/2];
PFUser *u = [PFQuote objectForKey:@"creator"];
_send = u;
[self performSegueWithIdentifier:@"showUser" sender:self];
}
以下是与prepareForSegue
segueToUser
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showUser"]) {
BRETTFUserTableViewController *bfutvc = [segue destinationViewController];
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
bfutvc.us = _send;
}
}
这是我的故事板的一部分图片。
第一个视图是tabView
第二个视图是navView
第三次视图是tableView
第四个视图是tableView
由于似乎没有人找到解决方案,我将提供更多信息。从我深入挖掘Debug View Hierarchy,我发现了一些关于backButton的更多信息。我可以看到后面的箭头完好无损,旁边有一个NSString
似乎是nil
,我不知道为什么它是零,但这就是我发现的。这是我发现的其他图片。
答案 0 :(得分:0)
在你的
中
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
你已经写了一个代码行
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
在上面的行中你设置了标题" " 空字符串。
使用要在后退项目上显示的标题,而不是空字符串。 fr ex:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
检查它可能有帮助。
添加故事板的图像,我如何在导航控制器中嵌入视图控制器。
或者如果您已将导航外观代码放在应用中的任何位置,那么也会发布该代码。
答案 1 :(得分:0)
在您的 viewDidLoad 和 prepareForSegue 方法中,您拥有以下内容:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
通过没有标签的按钮替换导航控制器的默认后退按钮。
您应该只删除这两行以获得默认的后退按钮。
答案 2 :(得分:0)
我终于解决了这个问题。为了实现这一点,我必须进入第一个tableViewController
的导航栏并将后退按钮标题设置为Back
,然后设置色调颜色(默认为清除),现在它可以正常工作。