我的应用程序中发生的事情是用户登录然后控制器的标题变为“Hello(用户名)”,然后用户按下按钮并被推送到标题为“Messages”的UITableViewController。在他们选择一条消息后,他们被推送到另一个UITableViewController,标题为“Message to(receiver)”。
问题是当你按下标题为“Message to(receiver)的第二个UITableViewController上的后退按钮时,第一个UITableViewController的标题变为”Hello(Username)“而不是”Messages“。这个bug只发生了当我更新到Xcode 6时,我不知道是什么导致它。
在ViewController 1中:
-(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
UIBarButtonItem *_backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:nil action:nil];
self.navigationItem.backBarButtonItem = _backButton;
_backButton = nil; //This is to make the Back button on other viewController to read "Back"
}
-(void) viewDidLoad
{
[super viewDidLoad];
self.title = [[NSString alloc] initWithFormat:@"Hello %@", self.userLoggedIn];
//Hide backbutton
[self.navigationItem setHidesBackButton:YES animated:NO];
}
- (IBAction)messages:(id)sender
{
TableViewController *tableVC = [self.storyboard instantiateViewControllerWithIdentifier:@"checkForMessagesVC"];
[self.navigationController pushViewController:tableVC animated:YES];
}
在UITableViewController 1中:
-(void)viewDidLoad
{
self.title = @"Messages";
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
ViewMessagesVC *viewMessagesVC = [self.storyboard instantiateViewControllerWithIdentifier:@"viewMessagesVC"];
[self.navigationController pushViewController:viewMessagesVC animated:YES];
}
还有一件事是在ViewController 1中隐藏了后退按钮。然后当你转到TableViewController 1时,后退按钮会显示,但是当你转到TableViewController 2然后返回到TVC 1时,隐藏了后退按钮。 (即使你把[self.navigationItem setHidesBackButton:NO animated:NO];在TableViewController的viewDidLoad中,后退按钮仍然不会显示)
不确定是什么导致这种情况,唯一发生的事情是推动导航控制器并按下后退按钮。每个控制器都有计时器和其他事情发生,但没有任何影响标题。有什么想法吗?
答案 0 :(得分:0)
所以希望没有其他人愚蠢地遇到这个奇怪的错误。出于某种原因,我的第二个TableViewController中的代码:
- (BOOL)prefersStatusBarHidden
{
return YES;
}
导致错误