【发布时间】:2019-12-22 22:35:13
【问题描述】:
我需要弄清楚如何识别在任何给定时间处于活动状态的情节提要。我有一个专门的天赋,我需要识别情节提要(UIView),然后根据用户按下的内容以编程方式更改内容。
- 所有情节提要都有标识符。
- 在根视图的 viewDidLoad 中有以下内容。
- (void)viewDidLoad
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"View1"];
{
我想做的是确定用户在哪个情节提要上,并根据媒体执行以下 sudo-code
- (void)viewDidLoad
if (storyboard.name != RootView)
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"View1"];
{
else if (storyboard.name = View2){
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"View2"];
}
等等……
我已经逐步浏览了代码并看到了 StoryboardID,但我很确定你不会使用它......
提前致谢 杰里米
更新:导航说明
我正在尝试实现ECSlideViewController,但它正在使我陷入困境。有效地将幻灯片添加到正确的功能以显示更多选项。所以,这种想法很容易被证明是恶心的。我有主 UIViewController<title:HomeView> 然后我在屏幕上有 4 个按钮,它们连接到其他 UIViewControllers<View1>、UIViewController<View2> 等。
为了在 View1、View2、View3、View4 上产生效果,我需要将类(如示例中的 ECSlideViewController)带入 UIViewController<HomeView>。但是,如果我更改下面的代码来表示这个......
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"HomeView"];
它崩溃是因为它调用了自己。不好,循环编码是不行的。
但是如果我把它设置为原来的样子
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"FirstTop"];
(顺便说一句,firstTop 是示例中使用的视图的标题)
它有效,但随后忽略了UIViewController<HomeView>
这就是为什么我问是否有办法识别UIViewController 的self.title(说故事板...我的错),因为我打算在它周围放置条件逻辑以便不放置代码如果它在UIViewController<HomeView> 上。
除非您下载ECSlideViewController 并开始使用它,否则这真的很难解释。但实际上我只想测试 self.title .....我认为...
另一个想法是将逻辑带入四个中的UIViewControllers 并让它在那里工作......但是它通过 nil 吓坏了,因为它期待一个标识符......
希望这是有道理的......
J.
【问题讨论】:
-
我认为您对故事板是什么感到困惑。故事板没有标识符,视图控制器和 segues 有。当你制作一个应用程序时,你会自动获得一个故事板,其文件名为 MainStoryboard.storyboard。您是否在您的应用中添加了任何其他故事板,或者您在谈论视图控制器?
-
对不起我的错...是的...我的意思是视图控制器。
-
实际上,我只需要获取 UIView 的标题...但是对于我的一生来说,当我使用 self.title 时,它会生成代表标题的数字。
-
你是指 UIView 还是 UIViewController?您为什么不描述您需要的“专业”导航,并且有人可能会帮助您使用情节提要功能更轻松地做到这一点。
-
你的权利Firoze....更新解释。
标签: ios storyboard