这是HomeView enter image description here
当有人点击“银行业”时按钮。 Action将加载BaseviewController。
这是按钮操作。
HomeViewController.m
BaseViewController *clickbutton = [[BaseViewController alloc] initWithNibName:@"BaseViewController" bundle:nil] ;
[self presentViewController:clickbutton animated:YES completion:nil];
这是BaseView enter image description here
有一个滚动条可以加载每个视图。滚动条 背景是绿色的。并改变下一步的背景是 问题。
BaseViewController.m
-(void)ViewDidLoad{
PriorityViewController *obj ;
UINavigationController *nav;
obj = [[ PriorityViewController alloc] initWithNibName:@"PriorityViewController" bundle:nil] ;
nav = [[UINavigationController alloc] initWithRootViewController:obj];
nav.view.frame = rect;
[self.view addSubview:self.nav.view];
}
点击“服务请求”时
OtherBankTransferViewController *obj;
obj = [[OtherBankTransferViewController alloc]initWithNibName:@"OtherBankTransferViewController" bundle:nil];
[self.navigationController pushViewController:obj animated:YES ];
这将加载与我在此处上传的第二张图片相同的内容。 我只是想改变滚动条的背景颜色 我想将滚动条更改为黑色。
我不知道。如果有人解释我! 提前谢谢。
答案 0 :(得分:0)
APPROACH 1: 不是在每个ViewController中初始化scrollBar,为什么不在BaseView Controller中分配init,并将其实例传递给所有View Controller。 从现在开始,所有ViewControllers都将具有相同的实例,因此很容易更改scrollBar的背景。
APPROACH 2: 您可以在想要更改scrollBar颜色时发布通知, 为您要发布的通知添加观察者,并且通知您可以传递要为所有滚动条设置的颜色。
想要更改颜色时发布通知
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[UIColor blackColor] forKey:@"someKey"];
[[NSNotificationCenter defaultCenter] postNotificationName: @"TestNotification" object:nil userInfo:userInfo];
在viewDidLoad中添加观察者
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveTestNotification:)
name:@"TestNotification"
object:nil];
处理收到的通知的方法
- (void) receiveTestNotification:(NSNotification *) notification{
NSDictionary *userInfo = notification.userInfo;
UIColor *backGroundColor = [userInfo objectForKey:@"someKey"];
// assign this color to your scrollBar in each ViewController
}
在viewDidUnload中删除OBSERVER
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"TestNotification" object:nil];