VLCDetailViewController.m 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. //
  2. // VLCDetailViewController.m
  3. // AspenProject
  4. //
  5. // Created by Felix Paul Kühne on 27.02.13.
  6. // Copyright (c) 2013 VideoLAN. All rights reserved.
  7. //
  8. #import "VLCDetailViewController.h"
  9. @interface VLCDetailViewController ()
  10. @property (strong, nonatomic) UIPopoverController *masterPopoverController;
  11. - (void)configureView;
  12. @end
  13. @implementation VLCDetailViewController
  14. - (void)dealloc
  15. {
  16. [_detailItem release];
  17. [_detailDescriptionLabel release];
  18. [_masterPopoverController release];
  19. [super dealloc];
  20. }
  21. #pragma mark - Managing the detail item
  22. - (void)setDetailItem:(id)newDetailItem
  23. {
  24. if (_detailItem != newDetailItem) {
  25. [_detailItem release];
  26. _detailItem = [newDetailItem retain];
  27. // Update the view.
  28. [self configureView];
  29. }
  30. if (self.masterPopoverController != nil) {
  31. [self.masterPopoverController dismissPopoverAnimated:YES];
  32. }
  33. }
  34. - (void)configureView
  35. {
  36. // Update the user interface for the detail item.
  37. if (self.detailItem) {
  38. self.detailDescriptionLabel.text = [self.detailItem description];
  39. }
  40. }
  41. - (void)viewDidLoad
  42. {
  43. [super viewDidLoad];
  44. // Do any additional setup after loading the view, typically from a nib.
  45. [self configureView];
  46. }
  47. - (void)didReceiveMemoryWarning
  48. {
  49. [super didReceiveMemoryWarning];
  50. // Dispose of any resources that can be recreated.
  51. }
  52. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  53. {
  54. self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
  55. if (self) {
  56. self.title = NSLocalizedString(@"Detail", @"Detail");
  57. }
  58. return self;
  59. }
  60. #pragma mark - Split view
  61. - (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
  62. {
  63. barButtonItem.title = NSLocalizedString(@"Master", @"Master");
  64. [self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
  65. self.masterPopoverController = popoverController;
  66. }
  67. - (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
  68. {
  69. // Called when the view is shown again in the split view, invalidating the button and popover controller.
  70. [self.navigationItem setLeftBarButtonItem:nil animated:YES];
  71. self.masterPopoverController = nil;
  72. }
  73. @end