【问题标题】:Action bar in all uiviewcontrollers in iOsiOs 中所有 uiviewcontrollers 中的操作栏
【发布时间】:2023-03-28 01:20:01
【问题描述】:

在 iO 中创建操作栏(仅一次)以在所有 UIViewController 中保持其位置/大小/内容的最佳方法是什么? 我可以为被推送的 UIViewController 设置动画而不为栏设置动画吗?

我正在检查是否可以使用 UIToolBarUINavigationController 来完成。我在正确的轨道上吗?

提前致谢

【问题讨论】:

  • 两者都可以。如果您在 A UINavigationController 中嵌入 ViewController,则 push segue 会将 UINavigationBar 嵌入到下一个视图中。如果你有一个 UITAbBarController,你会为每个 UITabBarItem 获得不同的视图,但 UITAbBar 仍然存在。等等,对于 UITollBar。
  • 感谢您的回复。请检查我对 Atif 的回答的评论以进行澄清:) @MinnesotaSteve

标签: ios objective-c iphone uiviewcontroller uitoolbar


【解决方案1】:

是的,这就是要走的路。还可以使用会自动为您提供导航栏(操作栏)的导航层次结构。在 Tabbar 上,您必须创建不同的导航层次结构。

【讨论】:

  • 感谢您的回复。我创建了一个嵌入到 UIViewController 的 UINavigationController 并按照我的意愿设计了这个栏。但是,当推送到另一个 UIViewController 时,这个栏会变成我不想要的“
  • 就像我说的,如果您使用导航控制器,它会自动提供给您。如果您想为所有视图控制器坚持使用单个导航栏,您可以将控制器扩展到您的基础并在那里设置您的导航栏,这对所有人都是一样的。
  • 但是在这种情况下,当推送新的uiviewcontroller时,bar会动画并重新出现在屏幕上不是吗?不能这样做以使栏在此过渡期间保持静止吗? @AtifImran
  • 你可以 pushViewController 与 Animation:NO
  • 别担心,但请记住,UI 是特定于平台的东西,您应该尝试跟上它,直到并且除非您的应用程序中有特定点需要它。如果您尝试了太多在您正在开发的平台上没有实践过的事情,这也将成为应用拒绝的一个重点。
【解决方案2】:

我最终做了以下事情:

1- 在故事板中创建了一个 UIViewController,其中包含一个设计为操作栏的 UIView,其下方是一个 容器

2-我将这个容器嵌入到另一个 UIViewController 中,在这种情况下它将成为根视图控制器

3-prepareForSegue 上,我保存了加载到容器中的 UIViewController 实例

4-在这个UIViewController和第二个之间切换:

UIViewController *newController = ...
UIViewController *oldController = ...

[oldController willMoveToParentViewController:nil];
[self addChildViewController:newController]; 

[self transitionFromViewController:oldController 
toViewController:newController 
duration:0.1
options:UIViewAnimationOptionTransitionNone
animations:^(void) {
    oldController.view.frame = CGRectMake(0 - width, 0, width, height);
    newController.view.frame = CGRectMake(0, 0, width, height);
} 
completion:^(BOOL finished){
    [newController didMoveToParentViewController:self];
}

];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-12
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多