我已经看过了所有关于这本书的教程,但仍然没有答案.我需要调用代码中的另一个视图.我用UIStoryboards.我已经通过从UIButtons拖动控件多次更改了视图,但现在它必须来自代码.如果用户是第一次打开应用程序,我会try 从主菜单调用信息页面.然而,我似乎找不到改变代码视图的方法.我的所有视图都由相同的文件控制(ViewController2).我主菜单的identifierViewControllerMain,信息页面的identifierViewControllerInfo.首先我试了一下:

[ViewControllerMain presentViewController: ViewControllerInfo 
                                 animated:YES 
                               completion: NULL];

然后我试着 for each 人做不同的UIViewControllers,然后说:

[ViewController2 presentViewController: ViewController 
                              animated:YES 
                            completion: NULL];

两个都不管用.对于第一个,它说:

使用未声明的标识符ViewControllerMain.

在第二条中,它说:

意外的接口名称"ViewController":应为标识符.

我能做什么?

推荐答案

要创建视图控制器,请执行以下操作:

UIViewController * vc = [[UIViewController alloc] init];

要调用视图控制器(必须从另一个视图控制器内部调用),请执行以下操作:

[self presentViewController:vc animated:YES completion:nil];

首先,使用nil而不是null.


从情节提要加载视图控制器:

NSString * storyboardName = @"MainStoryboard"; 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
UIViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER_OF_YOUR_VIEWCONTROLLER"];
[self presentViewController:vc animated:YES completion:nil];

视图控制器的Identifier要么等于视图控制器的类名,要么等于可以在故事板的标识判断器中分配的故事板ID.

Ios相关问答推荐

SWIFT设备方向更新不正确

通过在SWIFT中不起作用的泛型传递协议一致性类型

在某些情况下,UIHostingController在自动调整时不能调整大小

SWIFT根据地球坐标修改 node 旋转

在滚动视图中固定页眉,但在页眉上方嵌入元素

CIKernel的Metal Shader裁剪问题

视图未更新以在按下按钮时显示另一个视图

iphone 11 和 iphone 12 对于相同的布局显示不同的结果

如何在后台显示 Swift UI 中的通讯通知?

WatchConnectivity - 从手表配套应用程序在 iOS 设备上启动 AVPlayer

如何为 Firebase Auth 实施 Firebase AppCheck?

AVAudioRecord 没有音频

为什么applicationState发布者只发布一次?

如何从 Locale Swift 获取货币符号

Swift 图表:.chartYScale 似乎只适用于 100 的增量?

AVPlayer 退出全屏

在 Grand Central Dispatch 中使用 dispatch_sync

使用 convertPoint 获取父 UIView 内的相对位置

每个版本的 iOS 都附带什么版本的移动 Safari?

比较没有时间分量的 NSDates