Deprecation schedule:
MDCAppBarViewController is a direct replacement for MDCAppBar. The migration essentially looks like so:
// Step 1 - let appBar = MDCAppBar() + let appBarViewController = MDCAppBarViewController() // Step 2 - self.addChildViewController(appBar.headerViewController) + self.addChildViewController(appBarViewController) // Step 3 - appBar.addSubviewsToParent() + // Match the width of the parent view. + CGRect frame = appBarViewController.view.frame; + frame.origin.x = 0; + frame.size.width = appBarViewController.parentViewController.view.bounds.size.width; + appBarViewController.view.frame = frame; + + view.addSubview(appBarViewController.view) + appBarViewController.didMove(toParentViewController: self)
MDCAppBarViewController is a subclass of MDCFlexibleHeaderViewController, meaning you configure an MDCAppBarViewController instance exactly the same way you'd configure an MDCFlexibleHeaderViewController instance.
MDCAppBar also already uses MDCAppBarViewController under the hood so you can directly replace any references of appBar.headerViewController with appBarViewController.
| Find | Replace |
|---|---|
let appBar = MDCAppBar() | let appBarViewController = MDCAppBarViewController() |
self.addChildViewController(appBar.headerViewController) | self.addChildViewController(appBarViewController) |
appBar.addSubviewsToParent() | view.addSubview(appBarViewController.view)appBarViewController.didMove(toParentViewController: self) |
self.appBar.headerViewController | self.appBarViewController |
| Find | Replace |
|---|---|
MDCAppBar *appBar; | MDCAppBarViewController *appBarViewController; |
appBar = [[MDCAppBar alloc] init] | appBarViewController = [[MDCAppBarViewController alloc] init] |
addChildViewController:appBar.headerViewController | addChildViewController:appBarViewController |
[self.appBar addSubviewsToParent]; | [self.view addSubview:self.appBarViewController.view];[self.appBarViewController didMoveToParentViewController:self]; |