Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.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
Ios 自定义导航栏,用于;“更多”;UITabBarController中的视图控制器_Ios_Cocoa Touch - Fatal编程技术网

Ios 自定义导航栏,用于;“更多”;UITabBarController中的视图控制器

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:

使用下面的代码(对于较低版本的iOS),我正在对
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外观和感觉,对此我很满意。如果你想/需要重新订购,那么你要么不能这样做,要么必须自己重新发明。