Ios 自定义导航栏,用于;“更多”;UITabBarController中的视图控制器
使用下面的代码(对于较低版本的iOS),我正在对Ios 自定义导航栏,用于;“更多”;UITabBarController中的视图控制器,ios,cocoa-touch,Ios,Cocoa Touch,使用下面的代码(对于较低版本的iOS),我正在对UINavigationBar进行子类化,并将其应用到我的UITabBarController中的每个导航栏(每个导航控制器的) @implementation CustomNavigationBar - (void)drawRect:(CGRect)rect { UIImage *image = [UIImage imageNamed:@"customNavigationBar.png"]; [image drawInRect:
UINavigationBar
进行子类化,并将其应用到我的UITabBarController
中的每个导航栏(每个导航控制器的)
@implementation CustomNavigationBar
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"customNavigationBar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
该代码适用于可见可访问的视图控制器,但当按“更多”选项卡访问其他视图控制器时,自定义图像不再显示。我错过了什么吗?UIDABBARCONTROLLER将为更多项目创建
UINavigationController
,因此它的UINavigationBar
将不是类的实例,而是一个UINavigationBar
您可以查看iOS 5外观API以更改其外观。UIDABBARController将为更多项目创建
UINavigationController
,因此其UINavigationBar
将不是类的实例,而是一个UINavigationBar
您可以查看iOS 5外观API以更改其外观。我定制更多视图控制器的方式是确保您不会从UITabBarController本身获得默认的更多控制器,这听起来就像您正在体验的一样 1创建自己的“更多视图”控制器。它将有自己的自定义图标
//MyMoreViewController.m
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
self.title = NSLocalizedString(@"More", @"More");
self.tabBarItem.image = [UIImage imageNamed:@"MyCustomMoreImage"];
}
return self;
}
然后
2初始化UITabBarController时,确保您向初始化器发送了五个视图控制器,并且您的自定义更多视图控制器是第五项的根视图控制器-即,通常您会使用导航控制器,将您的更多视图控制器设置为其根视图控制器。我自定义更多视图控制器的方式是确保您不要从UITabBarController本身获取默认的more控制器-这听起来像是您正在经历的 1创建自己的“更多视图”控制器。它将有自己的自定义图标
//MyMoreViewController.m
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
self.title = NSLocalizedString(@"More", @"More");
self.tabBarItem.image = [UIImage imageNamed:@"MyCustomMoreImage"];
}
return self;
}
然后
2初始化UITabBarController时,确保您向初始化器发送了五个视图控制器,并且您的自定义更多视图控制器是第五项的根视图控制器-即,通常您会使用导航控制器,并且您的更多视图控制器设置为其根视图控制器。您可以使用tabBarController的moreViewController属性为了获得更多的导航控制器(我在iOS7应用程序上使用了这个)
您可以使用tabBarController的moreViewController属性来获取更多导航控制器(我在iOS7应用程序中使用了此属性)
更多的点出现了吗??请说明您是如何初始化UITabBarController的……是的,
UITABBCONTROLLER
在Interface Builder中初始化,并在我的主视图控制器中处理。出现的圆点越多,我对控制器本身没有问题,只是定制而已。除“更多”中包含的视图控制器外,所有视图控制器都是定制的。。。“选项卡。UITabBarController中有多少个视图控制器?我猜超过5个?出现的点越多吗??请说明您是如何初始化UITabBarController的……是的,UITABBCONTROLLER
在Interface Builder中初始化,并在我的主视图控制器中处理。出现的圆点越多,我对控制器本身没有问题,只是定制而已。除“更多”中包含的视图控制器外,所有视图控制器都是定制的。。。“选项卡。UITabBarController中有多少个视图控制器?我猜不止5个?我正在认真考虑让我的应用程序只在iOS 5上可用。我可以在哪里找到iOS版本统计信息?你对此有什么看法?对于一个没有安装基础的新应用,我肯定会这么做。在现有的应用程序上,你可能会偶尔收到一些已经付费的人的投诉,他们被“排除”在更新之外。我正在认真考虑让我的应用程序只在iOS 5上可用。我可以在哪里找到iOS版本统计信息?你对此有什么看法?对于一个没有安装基础的新应用,我肯定会这么做。在现有的应用程序上,你可能会偶尔收到一些已经付费的人的投诉,他们被“排除”在更新之外。我使用这种方法的唯一问题是,我无法在“编辑”模式下重新排序选项卡。我可能不得不选择浅色。这是一个很好的观点-我牺牲了重新订购,而没有默认的uitableview外观和感觉,对此我很满意。如果你想/需要重新排序,那么你要么不能这样做,要么必须自己重新发明。这种方法的唯一问题是我无法在“编辑”模式下重新排序选项卡。我可能不得不选择浅色。这是一个很好的观点-我牺牲了重新订购,而没有默认的uitableview外观和感觉,对此我很满意。如果你想/需要重新订购,那么你要么不能这样做,要么必须自己重新发明。