我创建了一个UICollectionviewcontroller
视图并嵌入了UINavigationcontroller
,然后我在导航栏中创建了一个按钮。我创建了一个UITableviewcontroller
,我还在其中嵌入了一个uinavigationcontroller
,当我点击UICollectionview
导航栏中的按钮时,它显示UITableviewcontroller
到目前为止这是正常的,但在此之后UITableview
控制器中的导航栏根本没有显示。请帮助我
答案 0 :(得分:3)
尝试使用这段代码将导航栏设置为不隐藏:
-(void) viewWillAppear:(BOOL)animated {
[[self navigationController] setNavigationBarHidden:NO animated:YES];
}
祝你好运
答案 1 :(得分:2)
根据苹果文档,这将不会显示导航控制器。为了显示导航控制器,您需要首先实例化导航控制器,然后加载表视图控制器,如下所示:
LTBaseTableViewController *viewController = [[LTBaseTableViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self.window setRootViewController:navigationController];
答案 2 :(得分:0)
答案 3 :(得分:0)
除@barryjones解决方案外,您还可以使用导航控制器直接推送表视图控制器。
[self.navigationController pushViewController:yourTableViewController animated:YES];
答案 4 :(得分:0)
除了上述答案之外,我还以类似的方式在UITabBArController的选项卡之间以编程方式移动。
我读过的大多数帖子建议
tabBarController?.selectedIndex = 0
然而,这会产生标签栏不再可见的情况。 最终通过在AppDelegate.swift
中向类中添加以下内容来解决var tabBarController: UITabBarController?
然后在AppDelegate中,我修改了didFinishLaunchingWithOptions,如下所示:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
tabBarController = window?.rootViewController as! UITabBarController
return true
}
然后,您可以在各种视图控制器中的任何位置使用以下行
tabBarController?.selectedIndex = 0