我正在导航栏上执行带有导航栏的segue,当segue启动时,我的当前视图似乎被未隐藏在我的segue中的导航栏推下...这看起来很糟糕......
如果删除setNavigationBarHidden:animated
方法,我在执行segue后看不到导航栏,问题就不再显示了。
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.navigationController setNavigationBarHidden:NO animated:YES];
if (indexPath.row == 0) {
[self performSegueWithIdentifier:@"mailSignUp" sender:nil];
} else if (indexPath.row == 1) {
[self performSegueWithIdentifier:@"logIn" sender:nil];
}
}
答案 0 :(得分:0)
如果要隐藏导航栏,则必须在根控制器(应用程序中的第一个控制器)中执行此操作。 我的猜测是你已经在界面构建器中从某个按钮设置了一个模态segue到下面的视图。通过这样做,您可以从下到上滑动以下视图。 我也猜测你正在使用最新的xcode版本[4.5.2]并在ios6上运行它。
尝试从界面构建器中删除您的segue。而且,而不是你的:
[self performSegueWithIdentifier:@“mailSignUp”sender:nil];
使用:
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
YourSecondController *secondController = (YourSecondController *)[storyBoard instantiateViewControllerWithIdentifier:@"YourSecondController"];
[self.navigationController pushViewController:yourSecondController animated:YES];
[使用mailSignUp取代YourSecondController或任何你想要执行的控制器]
此外,如果要隐藏导航栏,则必须在根控制器的(void)viewdidload方法中添加此行代码。
如果您以编程方式运行segue,则应该从右到左实现第二个视图幻灯片。如果这不足够或准确,请告诉我这是否有帮助或提供更多信息。