2015-06-29 10 views
0

Я не знаю точной причины этого, но я предполагаю, что он имеет какое-то отношение к используемому контроллеру контейнера. Я фактически использую несколько контейнеров, один для SWRevealViewController, в котором размещается общий номер UIViewController для его rearViewController и UINavigationController для frontViewController. Контроллер корневого контроллера этого навигационного контроллера является другим контроллером контейнера, MainViewController, который содержит UIPageViewController. Контроллер просмотра страницы имеет 3 UITableViewController и когда я пытаюсь перейти от этих контроллеров табличных представлений к соответствующим контроллерам представлений (через segue), и я хочу, чтобы это был переход на push, он делает модальный переход так, что дает?Show segue необъяснимо изменяет модальный сегмент при использовании контроллера контейнера

Это как-то связано с иерархией, я предполагаю, но сейчас это бесполезно испортилось со всеми этими контроллерами представлений, и я думаю, что в какой-то момент я сломал себе мозг. Я был бы очень признателен, если кто-то, кто знает, что не так, может объяснить.

+0

Слишком много текста; мозг болит. Было бы проще понять, разместите ли вы изображение с помощью раскадровки и выделите свою проблему. –

+0

Нужно 10 репутации для отправки изображений ... Не думайте, что это можно сделать из раскадровки. – Kerem

+0

Удачи - без кода и просто стены трудно интерпретируемого текста вам посчастливится получить решение. –

ответ

0

Спасибо за ответы, но я получил это работает без использования перетекает и раскадровки, нажав на контроллер представления в Tableview делегата вручную, как это:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    PlaceViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"placeViewController"]; 
    vc.place = self.places[indexPath.row]; 

    [self.navigationController pushViewController:vc animated:YES]; 

} 
0

застрял с той же проблемой и пытался решить в течение почти 2 дней, и, наконец, решил, что ..

иерархии просмотров:

Контейнер View

  • Первого контроллер (прямой потомок контейнер)
  • Второй контроллер (прямой ребенок из контейнера)
    • Третьего контроллер
    • Четвертого контроллер

Решение

  • добавил навигацию контроллер для первого контроллера
  • добавил Навигационный контроллер для второго контроллера

и когда хотим отобразить любой контроллер вместо представления е контроллер сам представить UINavigationController, это позволит решить проблему не происходит SEGUE толчок анимации ...

пример кода, в надежде, что это поможет:

import UIKit 

class ViewController: UIViewController { 

    var loginViewNavigation : UINavigationController! 
    var singupViewNavigation : UINavigationController! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     var storyBoard = UIStoryboard(name: "User", bundle: nil) 

     loginViewNavigation = storyBoard.instantiateViewControllerWithIdentifier("LoginViewNavigation") as! UINavigationController 
     singupViewNavigation = storyBoard.instantiateViewControllerWithIdentifier("SignupViewNavigation") as! UINavigationController 

     self.addChildViewController(loginViewNavigation) 
     self.addChildViewController(singupViewNavigation) 

     self.view.addSubview(loginViewNavigation.view) 
    } 
} 

точка для наблюдения является использование UINavigationController из контроллер вы хотите отобразить вместо этого ViewController

+0

Сделал что-то подобное, казалось, что это сработало. Но это чувствует неудовлетворенность, и я хочу знать, что это вызывает.Ответ на самом деле правильный, но просто нужно знать, почему эта проклятая машина ведет себя так. Спасибо за ответ. – Kerem

+0

UINavigationController - это класс Cocoa Touch, который управляет стеком контроллеров UIView (и их соответствующих представлений). Контроллер nav отделен от UINavigationBar (панель, которая отображается в верхней части представления); навигационный контроллер может существовать без панели навигации. Управление представлениями осуществляется путем нажатия/включения/выключения их в стеке контроллера навигационного контроллера. Когда вы нажимаете элемент, текущее изображение сместится с экрана влево, а новое изображение переместится справа. –

+0

Также здесь приведены специальные характеристики UINavigationController, очень полезно: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/ –

 Смежные вопросы

  • Нет связанных вопросов^_^