我有一堆三个VC,通过导航控制器协调并使用导航栏.在此导航栏上,在每个VC中,我添加了相同的按钮(“注销”按钮)作为右侧栏按钮项:
UIBarButtonItem *logoutButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"LogoutButtonTitle",@"") style:UIBarButtonItemStyleBordered target:self action:@selector(logout)]; [categoriesViewController.navigationItem setRightBarButtonItem:logoutButton]; [[self navigationController] pushViewController:categoriesViewController animated:YES];
因此每个视图控制器在导航栏中都有此注销按钮.当我将任何这些控制器推入导航堆栈时,新的视图控制器按预期加载,一切都显示并正常运行,但在显示新的视图控制器后(动画完成后),注销按钮将大约3px移动到对.
我尝试在VC的init方法中推送VC之前添加按钮,在viewDidLoad和viewDidAppear中但仍然是相同的行为.我似乎无法摆脱这种转变.
奇怪的是,当按下新VC时,后退按钮消失并重新出现(使用默认动画),但“退出”按钮似乎保持原位,并在动画结束后向右移动.此外,按钮上的字体不是默认字体,但系统字体之一(Helvetica light)可能与此相关.
有关为何发生这种情况的任何想法?
解决方法
我有同样的问题.这是因为你没有设置rootviewcontroller.设置主页面或第一个导航栏将作为rootviewcontroller发布的第一页.从那里[self.navcontroller] pushviewcontroller …].
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。