从另一个 XIB (iPhone) 的视图控制器加载 XIB
Posted
技术标签:
【中文标题】从另一个 XIB (iPhone) 的视图控制器加载 XIB【英文标题】:Load an XIB from a view controller of another XIB (iPhone) 【发布时间】:2011-08-19 02:07:00 【问题描述】:这是我的第一篇文章,我对这些东西还很陌生,但这是我的问题,希望你能提供帮助:)
所以我制作了一个游戏画面,现在想在开头添加一个主菜单。所以我添加了一个新的视图控制器子类,现在有一个 IBAction,它来自一个将加载游戏屏幕的按钮。
#import <UIKit/UIKit.h>
@interface MainMenuViewController : UIViewController
IBOutlet UIButton *classicMode;
IBOutlet UIButton *timedMode;
@property (nonatomic, retain) IBOutlet UIButton *classicMode;
@property (nonatomic, retain) IBOutlet UIButton *timedMode;
- (IBAction) classicModeButton:(id) sender;
- (IBAction) timedModeButton:(id) sender;
@end
所以现在我进入我的 .m 并设置 IBAction
- (IBAction) classicModeButton:(id)sender
但是我尝试使用 initWithNibName 并指定我的其他视图控制器 xib,它运行时没有错误,但是当我点击我在 IB 中链接的按钮时,它总是崩溃并说它收到了信号 SIGABRT。任何帮助将不胜感激。 :)
【问题讨论】:
你能发布你的 initWithNibName 方法吗? 可能,view
是您的UIViewController
中的nil
。请检查this answer,它可能会帮助你。
【参考方案1】:
您可能遇到了this 帖子中描述的问题。您需要将控制器设置为 self.window.rootViewController 而不是将其添加为应用程序委托代码中 self.window 的子视图。
【讨论】:
【参考方案2】:您需要发布更多代码,但您很可能需要创建一个导航控制器来将视图控制器推送到上面。导航控制器管理视图的转换,因此有必要执行从一个视图到另一个视图的切换。
【讨论】:
以上是关于从另一个 XIB (iPhone) 的视图控制器加载 XIB的主要内容,如果未能解决你的问题,请参考以下文章
如果未采用 xib,如何使视图控制器与 iphone 5 兼容
将 Storyboard 和 xib 用于同一个视图控制器?