Я добавляю вид в окно с этой целью- c код:
// Main Storyboard
UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
// View controller with the view to add
UIViewController *vc = [mainStoryBoard instantiateViewControllerWithIdentifier:@"SomeViewController"];
// Find the topmost window
UIWindow *topWindow = [[[UIApplication sharedApplication].windows sortedArrayUsingComparator:^NSComparisonResult(UIWindow *win1, UIWindow *win2) {
return win1.windowLevel < win2.windowLevel || !win1.isOpaque;
}] lastObject];
// Add the view to the window
[topWindow addSubview:vc.view];
Это прекрасно работает, так же как и этот метод Swift, который я использую в SomeViewController
, чтобы оставить вид:
// Get topmost window (Should be UIWindow)
let topWindow = UIApplication.shared.windows.sorted {
(win1, win2) in
return win1.windowLevel < win2.windowLevel || !win1.isOpaque
}.last
// Force view to prepare to disappear
self.viewWillDisappear(true)
// Send the view to the back
topWindow?.sendSubviewToBack(view)
Это структура моих представлений после выполнения кода target- c. Выбранный вид - это тот, который был добавлен:
Проблема в том, что ни одна из кнопок в новом представлении не работает, поэтому я не могу вызвать вышеуказанный метод закрытия. Я пробовал обе кнопки, добавленные в раскадровку, и программно добавленные кнопки. Визуально кнопки реагируют на нажатие, но они ничего не вызывают.