我正在为iOS 7更新我的应用程序,我发现了一个奇怪的问题.我正在展示一个包含在UINavigationController中的UIViewController UIModalTransitionStyleFlipHorizontal.
在iOS 6中它工作正常,但在iOS 7中,导航栏在转换后反弹.这与状态栏有关吗?我已将主导航栏的半透明度设置为NO.
在Info.plist中,基于View控制器的状态栏外观设置为NO.
这是一个GIF,在最小的演示应用程序中显示问题:

这是我的代码:
feedNavigationController = [[UINavigationController alloc] init];
feedNavigationController.navigationBar.translucent = NO;
SettingsViewController *settingsVC = [[SettingsViewController alloc] init];
feedNavigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[feedNavigationController setViewControllers:[NSArray arrayWithObjects:settingsVC, nil]];
[self presentViewController:feedNavigationController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud) cocoa-touch uiviewcontroller uinavigationcontroller ios uimodaltransitionstyle
我需要检测用户何时点击导航栏上的"后退"按钮,以便在发生这种情况时执行某些操作.我正在尝试手动将动作设置为这样的按钮,这样:
[self.navigationItem.backBarButtonItem setAction:@selector(performBackNavigation:)];
- (void)performBackNavigation:(id)sender
{
// Do operations
[self.navigationController popViewControllerAnimated:NO];
}
Run Code Online (Sandbox Code Playgroud)
我首先将该代码放在视图控制器本身中,但我发现它self.navigationItem.backBarButtonItem似乎是nil,所以我将相同的代码移动到父视图控制器,后者将前者推送到导航堆栈.但我无法让它发挥作用.我已经阅读了一些关于这个问题的帖子,其中一些人说需要在父视图控制器上设置选择器,但对我来说它无论如何都不起作用......我怎么可能做错了?
谢谢
我一直收到以下错误:
2011-04-02 14:55:23.350 AppName[42430:207] nested push animation can result in corrupted navigation bar
2011-04-02 14:55:23.352 AppName[42430:207] nested push animation can result in corrupted navigation bar
2011-04-02 14:55:23.729 AppName[42430:207] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
2011-04-02 14:55:23.729 AppName[42430:207] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
Run Code Online (Sandbox Code Playgroud)
这就是我在做的事情.从视图控制器,我按下某个按钮时调用以下内容:
EventsViewController *viewController = [[EventsViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
navController.navigationBar.tintColor = [UIColor blackColor]; …Run Code Online (Sandbox Code Playgroud) 我如何设置rootViewController的UINavigationController比其他的方法initWithRootViewController?
我想使用initWithNavigationBarClass:toolbarClass:为我的NavigationController提供自定义工具栏,所以我认为我不能使用initWithRootViewController.
我有一个UIScrollView(实际上是一个UICollectionView,但这可能没关系).当它出现在IOS 7中时,导航控制器将其contentInset和contentOffset设置为我不想要的值.它似乎正在尝试调整状态栏和导航栏.我非常喜欢让他们独自一人.我已经通过覆盖contentInset和contentOffset的getter和setter方法来解决这个问题,并使用一个标志来告诉对象它是否应该接受一个集合.但有更好的方法吗?
我有一个包含UINavigationController的popover.我可以很好地显示popover,它包含navController就好了.navController包含一个tableView,当我选择一个项目时,它会创建一个新的详细信息视图:
DeviceDetailViewController *detailViewController =
[[[DeviceDetailViewController alloc] initWithNibName:@"DeviceDetailViewController" bundle:nil] autorelease];
Run Code Online (Sandbox Code Playgroud)
然后我把它推到新的视图控制器:
[self.navigationController pushViewController:detailViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
这是出现问题时: 之后的酥料饼调整大小以在iPad上可用的最大高度推新视图.
我已经尝试将xib中所有视图的高度设置为固定高度而不是灵活.我试过明确设置弹出窗口的高度.我也尝试使用不同的视图控制器作为子视图.问题仍然是:在酥料饼想将自己调整到最大高度时会自动新视图推送到导航控制器.
这是一个问题,讨论在推送新视图时试图故意控制弹出窗口的大小:
我认为这可能是一种控制大小的强力方法.然而,奇怪的是,它实际上会导致一些快速的图形怪癖(好像视图正在进行动画处理),然后继续调整大小,如上所述.
换句话说,某些东西确实迫使popover达到其最大高度,并且似乎在调用所有委托方法之后发生.
是导航控制器吗?有没有人见过这种事?
从第一个视图控制器导航到第二个视图控制器时出现错误信息.我的编码就像这个
let vc = LoginViewController(nibName: "LoginViewController", bundle: nil)
self.navigationController?.pushViewController(vc, animated: true)
Run Code Online (Sandbox Code Playgroud)
问题是我总是收到这种错误信息
2014-12-09 16:51:08.219 XXXXX[1351:60b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/FDC7AA0A-4F61-47E7-955B-EE559ECC06A2/XXXXX.app> (loaded)' with name 'LoginViewController''
*** First throw call stack:
(0x2efcaf0b 0x39761ce7 0x2efcae4d 0x31b693f9 0x31ac1eaf 0x3191e365 0x317fe895 0x318a930d 0x318a9223 0x318a8801 0x318a8529 0x318a8299 0x318a8231 0x317fa305 0x3147631b 0x31471b3f 0x314719d1 0x314713e5 0x314711f7 0x3146af1d 0x2ef96039 0x2ef939c7 0x2ef93d13 0x2eefe769 0x2eefe54b 0x33e6b6d3 0x3185d891 0x4ccc8 0x4cd04 0x39c5fab7)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Run Code Online (Sandbox Code Playgroud) 每当用户开始编辑UISearchDisplayController搜索栏时,搜索控制器就会变为活动状态,并在显示搜索表视图时隐藏视图的导航栏.是否可以防止UISearchDisplayController隐藏导航栏而不重新实现它?
iphone uinavigationcontroller iphone-sdk-3.0 uisearchdisplaycontroller
这个问题简单明了,答案很遗憾.
你怎么能改变文字的字体UINavigationBar?
我正在Swift中开发一个iOS应用程序.
我想使用prepareForSegue函数将视图中的数据发送到另一个视图.
但是,我的目标视图前面是导航控制器,所以它不起作用.
我该怎么办?
ios ×6
iphone ×3
swift ×2
cocoa-touch ×1
ios4 ×1
ios7 ×1
iphone-5 ×1
objective-c ×1
selector ×1
uiscrollview ×1
uitoolbar ×1
xcode6 ×1