确定哪个故事板处于活动状态

时间:2013-02-18 02:56:15

标签: ios storyboard

我需要弄清楚如何识别在任何给定时间活动的故事板。我有一个专门的nativation,我需要识别故事板(UIView),然后根据用户按下的内容以编程方式更改内容。

  1. 所有故事板都有标识符。
  2. 在根视图的viewDidLoad中我有以下内容。
    • (无效)viewDidLoad中 self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@“View1”]; {
  3. 我想要做的是确定用户所在的故事板,并根据媒体执行以下sudo-code

    • (无效)viewDidLoad中 if(storyboard.name!= RootView) self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@“View1”]; { else if(storyboard.name = View2){ self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@“View2”]; }

    等...

    我已经完成了代码并看到了StoryboardID,但是我很确定你不打算使用....

    提前致谢 杰里米

    更新:导航说明

    我正在尝试实现ECSlideViewController,但它正在努力。有效地将幻灯片添加到正确的功能中以显示更多选项。所以,这种想法很容易变成icky。我有主UIViewController我然后在屏幕上有4个按钮,其中包括其他UIViewControllers,UIViewController等。

    为了对View1,View2,View3,View4产生影响,我需要将类(根据示例的ECSlideViewController)引入UIViewController。但是,如果我更改以下代码来表示这个......

    self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@“HomeView”];它崩溃是因为它自称。不好,循环编码是不行的。

    但如果我将它设置为原来的那个 self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@“FirstTop”]; < - (顺便说一下,op是与示例一起使用的视图的标题)

    它有效,但后来忽略了UIViewController

    这就是为什么我问是否有办法识别UIViewController的self.title(所说的故事板......我的坏),因为我要在它周围放置条件逻辑,以便不将代码放入它在UIViewController上。

    除非您下载ECSlideViewController并开始使用它,否则很难解释。但实际上我只想测试self.title .....我想......

    另一个想法是将逻辑带入四个人的UIViewControllers中并让它在那里工作......但是因为期待一个标识符,它会传递nil ...

    希望这是有道理的......

    学家

2 个答案:

答案 0 :(得分:0)

我不确定这是否有帮助,但听起来你必须比较实例以获得你想要的结果。我没试过这个,但是我会在你的app delegate中创建每个storyboard的属性,然后在你的视图控制器中引用app delegate进行比较。这可能不是最好的编码实践,但我会把它留在你手中。

类似(未经测试的代码):

- (void)testStoryBoard //After awake from nib or viewDidLoad
 {
    NXAppDelegate *appDelegate = (NXAppDelegate *)[[UIApplication sharedApplication] delegate];
    if ([self.storyBoard isEqual:appDelegate.view1StoryBoard]) 
         NSLog(@"View1 Storyboard");
    else 
         NSLog(@"View 2 Storyboard");
 }

答案 1 :(得分:0)

好的伙计们,

完全抛弃了ECSlideViewController。我找到了一些文章,解释说当你有多个UiViewControllers没有正确传递数据时它会出现问题。我最终使用安德鲁斯的建议。 http://www.youtube.com/feed/UCJA_puohXgnze8gPaerTeig它对我来说更容易。

虽然我注意到苹果公司的设计指导方针,但这通常是不行的,但我希望他们不介意。

再次感谢大家!

学家