21

こんにちは iOS 6 のシミュレーターでエラーが発生します。

キャッチされない例外 'UIViewControllerHierarchyInconsistency' が原因でアプリを終了しています。<UIView: 0xa3ae880; を表示します。フレーム = (0 0; 320 367); 自動サイズ変更 = W+H; layer = <CALayer: 0xa3ae8e0>> は <SearchHotelsViewController: 0xa3a6a20> に関連付けられています。このビューを <SecondViewController: 0xa1a9e90> に関連付ける前に、この関連付けをクリアしてください。

初期化コード

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;

selected == 1のときにアプリがクラッシュする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];
}

問題がどこにあるのか理解できません。

SearchHotelsViewController.xib

SearchHotelsViewController.xib

4

6 に答える 6

16

私がばかだったときにこれに遭遇し、「UITableViewController」オブジェクトをペン先にドラッグして、「UITableView」の代わりにビューとして機能させました。おっと!

于 2013-05-29T16:40:10.810 に答える
2

同様の問題がありました。複数の xib ファイル、一部は機能し、一部は機能しませんでしたが、すべてが単一の UITableView を持っていました。壊れた xib ファイルを削除して、新しいファイルを作成する必要がありました。その後、彼らは皆働いた。

于 2013-01-07T11:20:25.887 に答える