这是大多数移动应用程序使用的常见设计模式
+-------------------------+
| title |
+-------------------------+
| |
| |
| |
| |
| |
| |
| content |
| |
| |
| |
| |
| |
+-------------------------+
| |tab1| |tab2| |tab3| |
+-------------------------+
其主要思想是,当用户按下tab1、tab2或tab3时,内容将相应地改变。
我现在所做的(代码不是故事板)是制作一个ViewController
来显示内容和底部面板,并制作一个UINavigationController
来显示标题
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
ViewController *viewController = [[ViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController];
self.window.rootViewController = nav;
[self.window makeKeyAndVisible];
}
当用户按“底部选项卡”更改内容视图时,同时使用子视图更改内容,但我发现,在更改内容时,我发现:
视图将不会以标题的高度正确地添加边框开始
如何实现这样的布局?
您可以使用容器视图更改按钮按下时的视图,而不使用选项卡栏控制器,请参见下面的url
如何在iOS中使用“容器视图”?
我们经常使用UITabbarController作为Windows的rootVC。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
ViewController1 *vc1 = [ViewController1 new];
vc1.tabBarItem.title = @"VC1";
vc1.tabBarItem.image = [UIImage imageNamed:@"1.png"];
ViewController2 *vc2 = [ViewController2 new];
vc2.tabBarItem.title = @"VC2";
vc2.tabBarItem.image = [UIImage imageNamed:@"2.png"];
ViewController3 *vc3 = [ViewController3 new];
vc3.tabBarItem.title = @"VC3";
vc3.tabBarItem.image = [UIImage imageNamed:@"3.png"];
UINavigationController *nav1 = [[UINavigationController alloc]initWithRootViewController:vc1];
UINavigationController *nav2 = [[UINavigationController alloc]initWithRootViewController:vc2];
UINavigationController *nav3 = [[UINavigationController alloc]initWithRootViewController:vc3];
UITabBarController *tab = [UITabBarController new];
tab.viewControllers = @[nav1,nav2,nav3];
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.rootViewController = tab;
[self.window makeKeyAndVisible];
return YES;
}
它们之间的关系:
单击选项卡项时,窗口上的视图在viewController之间更改。导航中的视图。它们不会相互影响。
看看UITabBarController
,这是一个默认组件,负责在屏幕底部显示选项卡图标,并自动管理选项卡之间的转换。每个选项卡也是一个独立的视图控制器,因此您的代码更有条理。对于标题,您可以使用UINavigationController
作为每个选项卡的根控制器,以获得标题栏
请看这个答案,以获得一个分步指南。
我正在与拥有自己的的子视图作斗争。我有一个,带有一个视图(浅粉色)和
有没有办法在使用 jongo 查询 MongoDB 时添加 ?我发现这样的错误 - '排序超出了 104857600 字节的内存限制,但没有选择加入外部排序。正在中止操作。传递 allowDiskUse:true 可以选择加入,可以通过以下方式阻止,您的聚合看起来像 但据我所知,Jongo 中的类仅将管道应用于自身,然后您可以使用 方法执行。 是否有任何方法可以将该参数传递给mongo而不从Jon
问题内容: 我在远程服务器上有一个管理Web应用程序。该应用程序是使用MEAN堆栈编写的,我列出了连接到Web应用程序所需的所有RESTful路由。 我正在编写一个Java客户端应用程序,该应用程序需要从该管理应用程序发送和接收数据。如果我具有服务器的IP地址和REST路由,如何将客户端连接到Web应用程序? 我想我需要提供到服务器和REST API文件的URL连接,然后仅调用诸如和的路由功能。
问题内容: 我使用spring数据和方法来获取模型。调用此方法时如何使用查询提示? 上面的源代码工作正常,但是我不能为我的JPA提供程序(在我的情况下为EclipseLink)设置QueryHint。 以上是我使用spring-data使用查询提示的方式, 我还发现了这个尚未解决的问题。 问题答案: 当我想使用spring-data创建查询时,请遵循上述算法。 1)是否已经提供的查询 通过弹簧数据
我使用spring数据和方法获取模型。调用此方法时如何使用查询提示 上面的源代码运行良好,但我无法为我的JPA提供者(在我的例子中是EclipseLink)设置QueryHint。 我使用spring数据使用查询提示的方式如下:, 我也发现这个还没有解决。
通过io的requestAbs方法调用/调用/使用REST API的vertx实现。vertx。果心http。vertx-core-3.2.0中的HttpClient类。jar导致HTTP错误::302,响应数据为HTML Erro响应。 不确定requestAbs方法的行为,因为没有引发异常,也没有写入任何日志。此外,还随附了使用vertx JAR的此方法的源代码。如果方法实现有bug,是否有问