Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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 自定义导航栏';背景_Ios_Objective C_Cagradientlayer - Fatal编程技术网

Ios 自定义导航栏';背景

Ios 自定义导航栏';背景,ios,objective-c,cagradientlayer,Ios,Objective C,Cagradientlayer,我无法将渐变设置为UINavigationBar的背景。我创建了一个类来处理CAGradientLayer,在我将渐变设置到导航栏的层之前,这个类似乎很好。当我开始浏览堆栈,甚至返回到TopController(“设置”视图)时,按钮和标题也会消失,标题也会消失 这是我在“设置”视图上运行的代码 也许有一种方法可以将导航项带到层的前面,或者另一种方法?我第一次遇到这个,它似乎不适合我。我很确定我错过了一个步骤或者考虑过了,提前感谢您的帮助听起来您可能多次添加渐变-您是否尝试过确保只调用一次?

我无法将渐变设置为UINavigationBar的背景。我创建了一个类来处理CAGradientLayer,在我将渐变设置到导航栏的层之前,这个类似乎很好。当我开始浏览堆栈,甚至返回到TopController(“设置”视图)时,按钮和标题也会消失,标题也会消失

这是我在“设置”视图上运行的代码


也许有一种方法可以将导航项带到层的前面,或者另一种方法?我第一次遇到这个,它似乎不适合我。我很确定我错过了一个步骤或者考虑过了,提前感谢您的帮助

听起来您可能多次添加渐变-您是否尝试过确保只调用一次?您编写的代码可能会多次用于特定的导航控制器。我很确定,我的意思是,我把它放在viewDidLoad@SSCHALEI上,开始时它会出现,渐变会越来越暗,一个难看的黄色,每次我回到设置视图,它会让我把它放在viewDidLoad@SSCHALEI,我是在为那个导航控制器写代码吗?是的,我也在UINavigationController中运行了该代码,但似乎失败了@PramodTapaniya@waffles在customnavigationviewcontroller.m文件中编写此代码。
- (void)viewDidLoad {
[super viewDidLoad];

// Do any additional setup after loading the view.

CAGradientLayer * randomLayer = [Gradient gold];

randomLayer.frame = CGRectMake(0, -20, self.navigationController.navigationBar.frame.size.width, self.navigationController.navigationBar.frame.size.height + 20);

[randomLayer setStartPoint:CGPointMake(0.0, 0.5)];
[randomLayer setEndPoint:CGPointMake(1.0, 0.5)];

[self.navigationController.navigationBar.layer insertSublayer:randomLayer atIndex:1]; 
}