当前位置: 首页 > 知识库问答 >
问题:

使用Objecte-CiOS

萧光华
2023-03-14

这是大多数移动应用程序使用的常见设计模式

+-------------------------+
|         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];
}

当用户按“底部选项卡”更改内容视图时,同时使用子视图更改内容,但我发现,在更改内容时,我发现:

  • 视图将不会以标题的高度正确地添加边框开始

如何实现这样的布局?


共有3个答案

方茂
2023-03-14

您可以使用容器视图更改按钮按下时的视图,而不使用选项卡栏控制器,请参见下面的url

如何在iOS中使用“容器视图”?

云建木
2023-03-14

我们经常使用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之间更改。导航中的视图。它们不会相互影响。

储阳曦
2023-03-14

看看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,是否有问