【问题标题】:Storyboard not unloading when switching to another xib切换到另一个 xib 时故事板未卸载
【发布时间】:2014-02-19 21:06:54
【问题描述】:

我正在为 iPhone 开发一个应用程序,我在切换视图、xib 和故事板等方面遇到了一些麻烦。我已经完成了切换视图的所有工作,但是当我更改为我的游戏时从我的主菜单查看,似乎不是完全切换视图,它只是将我以编程方式添加的所有对象等附加到同一个故事板,出于某种原因,我可以在游戏完全加载和工作时在后台看到上一页。以前视图中的按钮似乎仍然有效,但只是“幽灵按钮”,因为我可以通过新视图单击它们。

就好像旧视图永远不会卸载,只是停留在后台,而新视图被添加到旧视图之上。我正在使用 Xcode 版本 5.0.1 (5A2053) 并为 iOS 7 开发。我用于切换视图的方法是:

从 Storyboard 到 Xib:

[self presentViewController: [iphoneGame alloc] animated: NO completion:nil];

从 Xib 到 Storyboard:

ViewController *viewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewController"];
    [viewController setModalPresentationStyle:UIModalPresentationFullScreen];
    [self presentViewController:viewController animated:NO completion:nil];

【问题讨论】:

    标签: ios objective-c storyboard


    【解决方案1】:

    您从 XIB 加载 VC 的代码是错误的。您不会使用 alloc/init 创建视图控制器。您需要使用 initWithNibName:bundle:。如果两者都传入 nil,系统应该使用与类名相同的 nib 名称。

    您为什么尝试混合和匹配来自 XIB 和故事板的 VC?这是相当不寻常的。大多数人要么使用其中一种,要么使用其中一种,如果您要这样做,那么您有责任正确设置所有内容。

    【讨论】:

    • 好吧,我对应用程序开发还很陌生,我想从一开始就有一个故事板,所以我只是为下一个视图添加了一个 xib,这很糟糕吗?如果是这样,有没有办法将主故事板“转换”为 xib?
    • 如果您是新手,请坚持使用故事板。为下一个 VC 为您的故事板添加一个新场景,并学习如何链接到它。混合使用 XIB 和故事板只会让您感到困惑,有些事情您不能用 XIB 做,只有故事板。
    猜你喜欢
    • 2017-02-22
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 2012-02-29
    • 2014-11-13
    • 1970-01-01
    • 2013-02-03
    • 2012-08-12
    相关资源
    最近更新 更多