我很难找到一个非常简单的视图来显示。此视图具有由切换视图控制器管理的自定义视图控制器。 XIB上有一个UIViewController组件,其Image属性设置。视图控制器如下:
InstructionsViewController.h
#import <UIKit/UIKit.h>
@interface InstructionsViewController : UIViewController {
}
@end
InstructionsViewController.m
#import "InstructionsViewController.h"
@implementation InstructionsViewController
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
// Release anything that's not essential, such as cached data
}
- (void)dealloc {
[super dealloc];
}
@end
我还将XIB的File's Owner的class属性设置为InstructionsViewController,将Ctrl + Dragged File的Owner设置为View图标,并从弹出菜单中选择View。
显示视图的代码是:
- (void) showInstructions
{
//Lazy load the instruction view.
if (self.instructionsViewController == nil)
{
InstructionsViewController *viewController = [[InstructionsViewController alloc]
initWithNibName:@"InstructionsView"
bundle:nil];
self.instructionsViewController = viewController;
[viewController release];
}
[self.view insertSubview:viewController.view atIndex:0];
}
我的视图控制器在切换时动画不同的视图,加载和显示其他三个视图没有问题。它只是不喜欢这个。
我确信我错过了一些简单的事情,但对于我的生活,我无法让它因某些原因而工作。有没有人有任何指示?
谢谢,
史蒂夫
答案 0 :(得分:1)
我刚才有同样的事情。结束删除UIImageView,放置一个新的,然后重新链接,它工作。在某处似乎有些腐败。
答案 1 :(得分:0)
甚至不确定这是如何编译的。您正在nif检查之外插入子视图,其中viewController超出范围。
您可能想要
[self.view insertSubview:self.instructionsViewController.view atIndex:0];
答案 2 :(得分:0)
您是否通过在那里设置断点来验证是否正在调用showInstructions
?另一件需要检查的事情是,您要在z-order的底部插入Instructions
视图,因此它将位于所有其他项目的后面。尝试使用:
[self.view addSubview:self.instructionsViewController.view];
这会将它添加到z顺序的顶部。如果这不起作用,也请尝试:
[self.view setNeedsLayout];
和/或:
[self.instructionsViewController.view setNeedsLayout];
答案 3 :(得分:0)
好的,我终于解决了!
问题在于XCode或Interface Builder与我在IB中为Image View控件指定的PNG文件不一致。我尝试重新命名,重新指定等等无济于事。
我最后不得不删除图形并从它的源位置重新复制它。然后我在Image View中重新指定它,构建并运行。现在它有效。
世界上的一切都很美好。
感谢那些花时间阅读并提供帮助的人。我非常感激!
史蒂夫