我创建了一个UICollectionviewcontroller 视图并嵌入了一个UINavigationcontroller然后我在导航栏中创建了一个按钮。我再次创建了一个UITableviewcontroller也我嵌入了一个uinavigationcontroller,当我单击UICollectionview导航栏中的按钮时它显示UITableviewcontroller到这一点很好,但在此之后导航控制器中的栏UITableview根本没有显示。请帮助我


我创建了一个UICollectionviewcontroller 视图并嵌入了一个UINavigationcontroller然后我在导航栏中创建了一个按钮。我再次创建了一个UITableviewcontroller也我嵌入了一个uinavigationcontroller,当我单击UICollectionview导航栏中的按钮时它显示UITableviewcontroller到这一点很好,但在此之后导航控制器中的栏UITableview根本没有显示。请帮助我


尝试使用这段代码将导航栏设置为不隐藏:
-(void) viewWillAppear:(BOOL)animated {
[[self navigationController] setNavigationBarHidden:NO animated:YES];
}
祝你好运
根据苹果文档,这不会显示导航控制器。为了显示导航控制器,您需要先实例化一个导航控制器,然后加载表格视图控制器,如下所示:
LTBaseTableViewController *viewController = [[LTBaseTableViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self.window setRootViewController:navigationController];
除了@barryjones 解决方案,您还可以使用导航控制器直接推送表格视图控制器。
[self.navigationController pushViewController:yourTableViewController animated:YES];
除了上述答案之外,我还以类似的方式在 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