title: instance variable returning null in viewDidAppear but fine in viewDidLoad
body: <p>For some reason my instance variable (in my viewcontroller) is returning null in viewDidAppear but its returning the correct value in  viewDidLoad..</p>
  
  <pre><code>- (void)viewDidLoad {
      [super viewDidLoad];
  
          NSLog(@"viewDidLoad: %@",self.product.sku);
  }
  
  - (void)viewDidAppear:(BOOL)animated {
      [super viewDidAppear:animated];
              NSLog(@"viewDidAppear: %@",self.product.sku);
  
      [self adjustViews];
  }
  </code></pre>
  
  <p>This only happens when i'm loading my viewController from my appdelegate like below:</p>
  
  <pre><code>ProductDetailViewController *controller = [[ProductDetailViewController alloc] initWithProduct:product];
  
  [(UINavigationController *)self.tabBarController.selectedViewController pushViewController:controller animated:YES];
  </code></pre>
  
  <p>If i access my controller through other screen it works fine...</p>
  
  <pre><code>DProduct *product = [self.resultsController objectAtIndexPath:indexPath];
  ProductDetailViewController *detailViewController = [[ProductDetailViewController alloc] initWithProduct:product];
  [self.navigationController pushViewController:detailViewController animated:YES];
  </code></pre>
  
  <p>initWithProduct function</p>
  
  <pre><code>- (id)initWithProduct:(DProduct *)product {
      self = [super init];
      if (self) {
          self.product = product;
          self.title = product.sku;
      }
      NSLog(@"initwithproduct: %@",self.product.sku);
  
      return self;
  }
  </code></pre>
  
  <p>setProduct function</p>
  
  <pre><code>- (void)setProduct:(DProduct *)product {
      NSLog(@"SET PRODUCT WAS CALLED...%@",product.sku);
      product_ = product;
      if (product) {
          [self.cartButton removeFromSuperview];
          BOOL outOfStock = [product.stock unsignedIntegerValue] == 0;
          NSString *title = outOfStock ? NSLocalizedString(@"Out of Stock", nil) : NSLocalizedString(@"Add To Cart", nil);
          ThemedButton *cartButton = [ThemedButton buttonWithTitle:title style:outOfStock ? ThemedButtonStyleRed : ThemedButtonStylePink];
          [cartButton addTarget:nil action:@selector(addToCart:) forControlEvents:UIControlEventTouchUpInside];
          [cartButton sizeToFit];
          cartButton.enabled = !outOfStock;
          [self addSubview:cartButton];
          self.cartButton = cartButton;
          [self setupInterface];
      }
  }
  </code></pre>
  
  <p>Declarations for product and sku </p>
  
  <pre><code>   @interface ProductDetailViewController()
          @property (nonatomic, strong) ProductDetailView *detailView;
          @property (nonatomic, strong) UIScrollView *scrollView;
          @property (nonatomic, strong) DProduct *product;
          @property (nonatomic, assign) BOOL keyboardIsShown;
  
          - (void)configureDetailView;
          - (void)adjustViews;
          - (NSURL *)productURL;
      @end
  
      @implementation ProductDetailViewController
  
      @synthesize detailView = detailView_;
      @synthesize scrollView = scrollView_;
      @synthesize keyboardIsShown = keyboardIsShown_;
      @synthesize product = product_;
  
      @interface DProduct : DAsset
  
  @property (nonatomic, retain) NSNumber * available;
  @property (nonatomic, retain) NSString * detail;
  @property (nonatomic, retain) NSNumber * price;
  @property (nonatomic, retain) NSNumber * shipping;
  @property (nonatomic, retain) NSString * sku;
  </code></pre>