我是iOS编程的新手,一些简单的事情让我很困惑。
我的应用程序包含50个场景,每个场景都使用导航栏和条形按钮来支持应用内导航。其中近30个以模态呈现。
我是否正确,这意味着我应该在我的故事板上添加30多个单独的导航控制器?
如果是这样 - 它将使我的故事板难以阅读和支持。
请告诉我 - 在这种情况下采取行动的最佳方式是什么? 我接下来试过了:
我试图找到像“不显示导航控制器”这样的设置但没有成功。
我找到了调整每个导航控制器大小的方法according to this post
我可以做“技巧”
3.1添加导航控制器
3.2删除导航控制器
3.3之后我仍然嵌入了“导航项”并可以通过编程方式对其进行配置
可能没有那么“棘手”的方法吗?
答案 0 :(得分:1)
如果您必须自定义导航栏,则在界面构建器或代码中执行导航栏将难以管理。
如果我是你,如果导航栏上的按钮很简单,我会把它们放在代码中。
例如,在故事板中,您可以在没有导航控制器的情况下制作视图控制器。
在您的代码中,当您呈现视图控制器时,使用故事板segues初始化它们并初始化uinavigationcontroller并将topviewcontroller设置为呈现视图控制器。
通过在视图控制器类中使用presentViewController,您可以模态呈现视图控制器。
在你出席之前不要忘记添加按钮。
这是我的例子
var viewControllerToShowModally = storyboard?.instantiateViewControllerWithIdentifier("VIEWCONTROLLER") as!YOUR_CUSTOM_VIEWCONTROLLER
var navigationController = UINavigationController(rootViewController: viewControllerToShowModally)
navigationController.navigationItem.title = "Title"
// Or add buttons, I mean customize the navigation bar!
presentViewController(navigationController, animated: true, completion: nil)
并在模态显示的视图控制器中调用以下方法来解除
dismissViewControllerAnimated(true, completion: nil)
通过这种方式,在故事板中,您不需要将30个视图控制器与凌乱的segue线连接起来。此外,还有30个导航控制器。
答案 1 :(得分:1)
当您在屏幕上显示某些内容时,您将开始新的流程。每个导航控制器代表一个流程,因此如果您提供30个视图控制器,则应该有30个导航控制器。
例如,如果您有以下流程:(图例:>表示推送, - >表示root vc)
{{Foo}}
你应该:
a > b > c
c presents d
d > e > f
因此,在导航控制器中嵌入您需要的每个视图控制器。然后,当您需要开始新流程时,从故事板中实例化并显示正确的导航控制器。