didSelectItemAt IndexPath не выдвигает контроллер (но вызывается) - PullRequest
0 голосов
/ 23 мая 2019

Я сделал запрос, чтобы переместить navigationController в новый viewController, когда был выбран элемент в моем UICollectionView.Код выполняется, но действие не выполняется.Однако вызывается didSelectItemAt, поскольку я проверил это, запросив изменения цвета при выборе (который выполняется).Идея состоит в том, чтобы нажать на кого-то, кто отправил сообщение (функция чата) и быть отправленным в коллекцию сообщений, которые они мне отправили.Этот проект сделан программно!Любые идеи?

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    let layout = UICollectionViewFlowLayout()
    let controller = ChatLogController(collectionViewLayout: layout)
    controller.match = messages?[indexPath.item].match
    navigationController?.pushViewController(controller, animated: true)


    let cell : UICollectionViewCell = collectionView.cellForItem(at: indexPath)!
    cell.backgroundColor = UIColor.magenta
}

для дальнейшего контекста, здесь мой AppDelegate's didFinishLaunchingWithOptions:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    window = UIWindow()
    window?.makeKeyAndVisible()
    window?.rootViewController = MatchesController()

    return true
}

Ответы [ 2 ]

1 голос
/ 23 мая 2019

редактировать на основе вашего комментария ниже:

, поскольку он создан программно, поэтому вам нужно включить вас MatchesController в стек навигации:

так в вашем didFinishLaunchingWithOptions:

let navigationController = UINavigationController(rootViewController: MatchesController())

window?.rootViewController = navigationController
window?.makeKeyAndVisible()

тогда вы можете оттолкнуть ChatLogController от вашего MatchesController()

0 голосов
/ 23 мая 2019

Можете ли вы проверить, не является ли «navigationController» ноль?(Еще одно, что pushViewController отличается от выполнения segue.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...