Hello The error occurs in the simulator on iOS 6.
Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'A view can only be associated with at most one view controller at a time! View <UIView: 0xa3ae880; frame = (0 0; 320 367); autoresize = W+H; layer = <CALayer: 0xa3ae8e0>> is associated with <SearchHotelsViewController: 0xa3a6a20>. Clear this association before associating this view with <SecondViewController: 0xa1a9e90>.'
Initialization code
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Поиск туров", @"Выбор отеля", nil]]; segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; self.navigationItem.titleView = segmentedControl; [segmentedControl addTarget:self action:@selector(changeSegments:) forControlEvents:UIControlEventValueChanged]; segmentedControl.selectedSegmentIndex = 0; self.navigationItem.title = [segmentedControl titleForSegmentAtIndex:segmentedControl.selectedSegmentIndex]; [self setView:searchTours]; SearchHotelsViewController *searchHotelsController = [[SearchHotelsViewController alloc] initWithNibName:@"SearchHotelsViewController" bundle:[NSBundle mainBundle]]; selectHotels = searchHotelsController.view;
App crashes when selected == 1
is true
-(void)changeSegments:(id)sender { NSInteger selected = [sender selectedSegmentIndex]; if (selected == 0) { [self setView:searchTours]; } if (selected == 1) { [self setView:selectHotels]; } self.navigationItem.title = [sender titleForSegmentAtIndex:selected]; }
I cannot understand where the problem is.
SearchHotelsViewController.xib
The view renders presentation of the model in a particular format. The controller responds to the user input and performs interactions on the data model objects. The controller receives the input, optionally validates it and then passes the input to the model.
A view controller manages a single root view, which may itself contain any number of subviews. User interactions with that view hierarchy are handled by your view controller, which coordinates with other objects of your app as needed. Every app has at least one view controller whose content fills the main window.
Make sure your ViewController does not contain another view controller object. For example if your main view controller has a tableview, do not put the UITableViewController with in. It this used to pass in iOS 5, but in iOS 6 they will not allow this.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With