PresentViewController показывает черную страницу
- (IBAction)submitButtonClicked:(id)sender{
NSLog(@"here");
SuccessOrFailViewController *sfvc = [[SuccessOrFailViewController alloc] init];
[self presentViewController:sfvc animated:NO completion:NULL];
}
Я пытаюсь открыть новую страницу, когда пользователь нажимает кнопку отправки в приложении. Однако это открывает полностью черный экран, на нем ничего нет. Как мне заставить его открывать viewController?
Ответы
Ответ 1
Вы не вводите имя nib для пользовательского интерфейса:
SuccessOrFailViewController *sfvc = [[SuccessOrFailViewController alloc] initWithNibName:@"SuccessOrFailViewController" bundle:nil];
[self presentViewController:sfvc animated:NO completion:NULL];
Для раскадровки это способ:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
SuccessOrFailViewController *sfvc = [storyboard instantiateViewControllerWithIdentifier:@"SuccessOrFailViewController"];
[sfvc setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentModalViewController:sfvc animated:YES];
Ответ 2
Swift
var next = self.storyboard?.instantiateViewControllerWithIdentifier("DashboardController") as! DashboardController
self.presentViewController(next, animated: true, completion: nil)
не забудьте установить ViewController StoryBoard Id
в StoryBoard
→ identity inspector
Ответ 3
Если кто-нибудь еще это обнаружит, убедитесь, что вы не установили self.view.backgroundColor = UIColor.clearColor()
в представлении, которое будет показано... Это разрешило это для меня.
Ответ 4
Для раскадровки iOS7
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
SuccessOrFailViewController *sfvc = [storyboard instantiateViewControllerWithIdentifier:@"SuccessOrFailViewController"];
[sfvc setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentViewController:sfvc animated:YES completion:nil];
Ответ 5
У меня это произошло после добавления и удаления View Controllers в Storyboard и забывания обновить View Viewer с помощью последнего идентификатора Storyboard.
Например, если вы программно переходите к новому контроллеру представления, как это (обратите внимание, что идентификатор в коде "FirstUserVC" ):
let firstLaunch = (storyboard?.instantiateViewControllerWithIdentifier("FirstUserVC"))! as UIViewController
self.navigationController?.pushViewController(firstLaunch, animated: true)
Убедитесь, что в Interface Builder у вас есть идентификатор раскадровки, подобный этому, с FirstUserVC, указанным в идентификаторе идентификатора раскадровки:
![введите описание изображения здесь]()