如何在所有视图中显示相同的图像而不在所有视图中实现它?

时间:2011-11-03 12:04:52

标签: iphone

我想在每个视图的顶部显示我的应用徽标图片。但我想在一个视图中创建它一次,在每个视图中显示它,如ASP.net中的母版页。请有人帮助我。

5 个答案:

答案 0 :(得分:3)

创建UIViewController的子类,并在viewDidLoad方法中,获取并将图像放在您想要的位置:

·H

@interface MyLogoViewController : UIViewController
// your interface
@end

的.m

@implementation MyLogoViewController

- (void) viewDidLoad {
    UIImage* image = [UIImage imageNamed:@"image.png"];
    UIImageView* imageView = [[UIImageView alloc] initWithImage:image];
    imageView.frame.origin.x = // whatever you want
    imageView.frame.origin.y = // whatever you want
    [self.view addSubview:imageView];
    [self.view bringSubviewToFront:imageView];
    [imageView release];
}

@end

然后,对于任何一个控制视图的视图控制器,您希望显示该图像应该继承该子视图控制器而不是UIViewController。

@interface MyNewViewController : MyLogoViewController {
// your interface
}

@end

这样,图像自动显示,无需做任何特别的事情。

如果您计划在视图控制器中以编程方式添加子视图,则将imageView的引用保存到MyLogoViewController类作为成员var(而不是仅仅动态创建/释放它),因此如果需要,您可以将新视图放在现有徽标后面。

答案 1 :(得分:1)

您可以将该图像放在main.window中。这样你就可以在每个视图中看到哪些视图具有主窗口的子视图。但您需要根据主窗口中固定的图像大小修复所有视图大小。足够了。

答案 2 :(得分:1)

您还可以将图像添加到窗口并修复视图的大小,然后您可以在子视图中看到

答案 3 :(得分:1)

你可以在窗口中添加该视图,并在该窗口图像下方添加其他视图。所以你可以在每一页中看到它。

答案 4 :(得分:0)

为图像创建一个模态类,并从每个控制器的viewDidLoad调用它。