Iphone 从子类访问uinavigationbar?
我有一个基于UIView的子类,我想更改uinavigationbar的色调,但我尝试过的各种方法都不起作用。如何执行此操作?您可以从UINavigationController访问UINavigationBar。一种方法是将UINavigationController或UINavigationBar作为参数传递给UIView。或者UIView可以使用委托通知外部UIViewController执行工作。您可以从UINavigationController访问UINavigationBar。一种方法是将UINavigationController或UINavigationBar作为参数传递给UIView。或者UIView可以使用委托通知外部UIViewController执行工作。只要视图位于作为导航堆栈一部分的viewController中,您就可以执行以下操作:Iphone 从子类访问uinavigationbar?,iphone,objective-c,uinavigationcontroller,uinavigationbar,Iphone,Objective C,Uinavigationcontroller,Uinavigationbar,我有一个基于UIView的子类,我想更改uinavigationbar的色调,但我尝试过的各种方法都不起作用。如何执行此操作?您可以从UINavigationController访问UINavigationBar。一种方法是将UINavigationController或UINavigationBar作为参数传递给UIView。或者UIView可以使用委托通知外部UIViewController执行工作。您可以从UINavigationController访问UINavigationBar。一种
viewController.navigationController.navigationBar.tintColor = [UIColor blackColor];
要访问viewController,可以在视图类中将id声明为ivar:
id myParentViewController;
将此id声明为属性,以便可以从视图外部访问它
从viewController创建视图时,可以通过执行以下操作将对viewController的引用传递到视图中:
view.myParentViewController = self;
其中,self
将是对导航堆栈上的viewController的引用
现在您已进入视图,可以通过以下操作访问导航栏:
if([myParentViewController isKindOfClass:[UIViewController class]])
{
UIViewController *theParentViewController = (UIViewController*)myParentViewController;
theParentViewController.navigationController.navigationBar.tintColor = [UIColor blackColor];
}
只要视图位于作为导航堆栈一部分的viewController中,您就可以执行以下操作:
viewController.navigationController.navigationBar.tintColor = [UIColor blackColor];
要访问viewController,可以在视图类中将id声明为ivar:
id myParentViewController;
将此id声明为属性,以便可以从视图外部访问它
从viewController创建视图时,可以通过执行以下操作将对viewController的引用传递到视图中:
view.myParentViewController = self;
其中,self
将是对导航堆栈上的viewController的引用
现在您已进入视图,可以通过以下操作访问导航栏:
if([myParentViewController isKindOfClass:[UIViewController class]])
{
UIViewController *theParentViewController = (UIViewController*)myParentViewController;
theParentViewController.navigationController.navigationBar.tintColor = [UIColor blackColor];
}