 	}
 	
 	func rotatePlusButton(active: Bool) {
-		UIView.animateWithDuration(0.7, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 50, options: [], animations: {
-			if active {
-				let transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4))
-				self.plusButton.transform = transform
-			} else {
-				let transform = CGAffineTransformIdentity
-				self.plusButton.transform = transform
-			}
+		if let currentTransform = (self.plusButton.imageView!.layer.presentationLayer() as? CALayer)?.transform {
+			self.plusButton.imageView?.layer.transform = currentTransform
+		}
+		UIView.animateWithDuration(0.7, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 20, options: [], animations: {
+			let transform = active ? CGAffineTransformMakeRotation(CGFloat(M_PI_4)) : CGAffineTransformIdentity
+			self.plusButton.imageView!.transform = transform
 			}, completion: nil)
 	}
 	
 	func dropSearchBar(active: Bool) {
 		UIView.animateWithDuration(0.4, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 20, options: [], animations: {
-			if active {
-				self.searchBanner.frame.origin.y = -10
-			} else {
-				self.searchBanner.frame.origin.y = -54
-			}
+			self.searchBanner.frame.origin.y = active ? -10 : -54
 			}, completion: { _ in
-				if !active {
-					self.searchContainer.hidden = true
-				}
+				self.searchContainer.hidden = !active
+				if active { self.searchBar.becomeFirstResponder() }
 		})
 	}
 	

	
	// Initialize plus sign and the drop-down searchbar.
	func initializeSearch() {
		let plusContainer = UIView(frame: CGRectMake(0, 0, 44, 44))
		plusButton = UIButton(frame: CGRectMake(0, 0, 44, 44))
		plusButton.setTitle("+", forState: UIControlState.Normal)
		plusButton.titleLabel?.font = UIFont.systemFontOfSize(36)
		plusButton.titleLabel?.textColor = UIColor.whiteColor()
		plusButton.contentEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, 8.0, 0.0);
		plusButton.addTarget(self, action: "plusButtonTapped", forControlEvents: UIControlEvents.TouchUpInside)
		plusContainer.addSubview(plusButton)
		let button = UIBarButtonItem(customView: plusContainer)
		navigationItem.rightBarButtonItem = button
		let spacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
		spacer.width = -16;
		navigationItem.rightBarButtonItems = [spacer, button]
		
		searchContainer = UIView(frame: CGRectMake(0, 64, screenSize.width, 54))
		searchContainer.clipsToBounds = true

			UIView.animateWithDuration(0.4, animations: {
				self.searchTable.alpha = 1
			})
		} else {
			navigationItem.title = preserveTitle
			searchBottomView.frame.origin.y = screenSize.height
