     
     // MARK: - Helpers
     
-    private func segmentControlAtLevel(level: Int) -> JumpBarSegmentControl {
+    private func segmentControlAtLevel(level: Int, createIfNecessary: Bool = true) -> JumpBarSegmentControl? {
         
         var segmentControl: JumpBarSegmentControl? = self.viewWithTag(level) as! JumpBarSegmentControl?;
-        if (segmentControl == nil || segmentControl == self) { // Check for == self is when at root.
+        
+        if (segmentControl == nil || segmentControl == self) && createIfNecessary == true { // Check for == self is when at root.
             segmentControl = JumpBarSegmentControl()
             segmentControl!.tag = level;
             segmentControl!.frame = NSMakeRect(0, 0, 0, self.frame.size.height);

            for position in 0..<self.selectedIndexPath!.length {
                var pos = position
                if position == self.selectedIndexPath!.length {
                    pos = KPCJumpBarControlAccessoryMenuLabelTag - 1;
                }
    
                let segmentControl = self.segmentControlAtLevel(pos);
    
                if ((overMargin + segmentControl.minimumWidth() - segmentControl.frame.size.width) < 0) {
                    var frame = segmentControl.frame

    
        self.delegate?.jumpBarControl(self, willSelectItem: nextSelectedItem, atIndexPath: nextSelectedIndexPath)
        
        self.removeSegmentsFromLevel(nextSelectedIndexPath.length)
        self.selectedIndexPath = nextSelectedIndexPath
        self.layoutSegments()
    
