Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone MVC:在哪里加载视图?_Iphone_Uiview_Model View Controller - Fatal编程技术网

Iphone MVC:在哪里加载视图?

Iphone MVC:在哪里加载视图?,iphone,uiview,model-view-controller,Iphone,Uiview,Model View Controller,我有一个相对简单的应用程序。我有一个与用户交互的全屏UIView子类(musicGridView),一个加载该类的UIScrollView子类(scrollView),还有一个ViewController和mainWindow.xib 现在,我在nib中加载了一个viewController实例,它的类型是myViewController。nib还有myUIView实例,myViewController指向该实例 在AppDelegate中,我执行以下操作: [window addSubview

我有一个相对简单的应用程序。我有一个与用户交互的全屏UIView子类(musicGridView),一个加载该类的UIScrollView子类(scrollView),还有一个ViewController和mainWindow.xib

现在,我在nib中加载了一个viewController实例,它的类型是myViewController。nib还有myUIView实例,myViewController指向该实例

在AppDelegate中,我执行以下操作:

[window addSubview:scrollView];
[scrollView addSubview: viewController.view];
scrollView.musicGridView = (MusicGridView*) viewController.view;
我认为这是错误的。理想情况下,appDelegate没有scrollView的实例

在scrollView的AwakeFromNib类中,我对scrollView进行初始化

我认为应该这样做,在appDelegate中加载[window addSubview:viewController.view],然后将viewController指向scrollView而不是musicGridView的实例。然后,在scrollView awakeFromNib中添加musicGridView的子视图

最后,我想创建scrollView拥有的另一个视图,它实际上是一个侧选项卡栏(在给定的API中不可能),用户可以向左滚动以访问它


因此,我想在其他MVC内容中,问题是viewController是否应该指向scrollView,它包含所有其他内容UIView子类,包括musicGridView

听起来您好像没有使用Interface Builder来设计UI。由于这是一个新项目,我建议这样做。您根本不必编写这样的代码。但是,您需要描述您的销售渠道和行动

在处理IB时,您需要知道的两件最重要的事情是
IBOutlet
IBAction
关键字

示例类标题:

@interface MyClass : NSObject {
  IBOutlet UIScrollView* myScrollView;
}

- (IBAction) doWork;

@end

现在,您可以使用Interface Builder通过鼠标将源拖动到目标来连接这两件事。YouTube上有很多关于IB的教程视频,如果你需要更好地描述如何做到这一点。

我是一个不使用Interface Builder进行UI设计的人;根据我的经验,你要么全IB,要么全编程。为了解决您的特定问题,我认为您需要将musicGridView作为UIScrollView的实例或扩展

这可以在自定义viewController的loadView方法中完成—只需将其初始化为UIScrollView(并向其添加内容),而不是简单的旧UIView

但是,如上所述,这种方法与以IB为中心的方法不兼容,这在

UIViewController的所有子类 应该实现loadView方法 设置视图属性的步骤,除非 从nib文件加载视图


所以我试过了,结果只是得到了一个空白屏幕。不知道我哪里出了问题。。。