2012-11-13 8 views
11

Merhaba Hata, iOS6'daki öykünücünde gerçekleşir. == 1Bir görünüm yalnızca bir seferde en fazla bir denetleyiciyle ilişkilendirilebilir (UISegmentedControl)

-(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]; 
} 

sorun nerede olduğunu anlayamıyorum seçildiğinde

*** 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>.' 

Başlatma kodu

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 çöküyor.

SearchHotelsViewController.xib

cevap

2

SearchHotelsViewController.xib Ben benzer bir sorun vardı. Birden fazla xib dosyası, bazı çalıştı, bazıları yoktu, hepsi tek bir UITableView vardı. Bozuk xib dosyalarını silmek ve yeni dosyalar oluşturmak zorunda kaldım. Bundan sonra hepsi çalıştı.

16

ViewController'ınızın başka bir denetleyici denetleyicisi nesnesi içermediğinden emin olun. Örneğin, ana görünüm denetleyicinizin bir tablo görünümü varsa, UITableViewController'ı içeri sokmayın. Bu, iOS 5'te geçmek için kullanılır, ancak iOS 6'da buna izin vermezler.

+0

+1, iOS5 app çökmesine değil ama iOS6 vardır. – Girish

13

Ben bir aptal olduğumda ve "UITableViewController" nesnesini bir "UITableView" yerine görünüm olarak hizmet vermek üzere uç uca sürükledim. Tüh! Bir Storyboard'dan bir xib dosyasına kopyaladığımda/yapıştırdığımda bununla karşılaştım.

+1

Haha, ben de aynı şeyi yaptım. Bunun için teşekkürler! – Will

+3

Benzer bir şey yaptım, bir XIB yarattım ve UIVIew'i eklemek yerine UIViewController-> UIView ekledim. –

3

Xib'den arayüzü yeniden oluşturmak benim için bu sorunu çözdü. Güzel yanıt için