从apple docs我了解到UiNavigationController可以使用initWithNavigationBarClass:toolbarClass:方法与另一个Uinavigationbar实例化.如何通过自定义UiNavigationBar子类和IB正确地做到这一点?
iDe*_*Dev 20
您可以像这样使用它来初始化导航控制器,
UINavigationController *navigationController = [[UINavigationController alloc] initWithNavigationBarClass:[CustomNavigationBar class] toolbarClass:nil];
Run Code Online (Sandbox Code Playgroud)
这CustomNavigationBar是由子类创建的自定义类UINavigationBar.您可以使用setViewControllersUINavigationController 的属性设置viewcontrollers .
如果你想在IB中这样做,试试这个.从对象中选择导航栏,在身份检查器中,选择导航栏的自定义类.

在Interface Builder中,单击导航控制器内的导航栏.在右侧面板上检查它,并将自定义类更改为自UINavigationBar定义子类.
在代码中,确保已导入导航栏子类的头文件,并编写类似于以下内容的内容.
// This code assumes `MyCustomNavigationBar` is the name of your custom subclass, and that `viewController` is a UIViewController object created earlier.
// To create the containing navigation controller
UINavigationController *navigationController = [[UINavigationController alloc] initWithNavigationBarClass:[MyCustomNavigationBar class] toolbarClass:[UIToolbar class]];
// To set the root view controller in the navigation controller
navigationController.viewControllers = @[viewController];
Run Code Online (Sandbox Code Playgroud)
上面的代码通知UIKit创建一个带子UINavigationController类的导航栏MyCustomNavigationBar.然后,它将根视图控制器设置为存储在变量中的对象viewController.
| 归档时间: |
|
| 查看次数: |
7501 次 |
| 最近记录: |