在应用程序 IOS Objective C 启动时添加新的视图控制器

Posted

技术标签:

【中文标题】在应用程序 IOS Objective C 启动时添加新的视图控制器【英文标题】:Add new viewcontroller at launch of app IOS Objective C 【发布时间】:2016-08-02 08:09:24 【问题描述】:

我是 ios 开发新手。我有一个开源项目并在 xcode 中加载,它运行良好。

项目基于webview和加载url。

我想要做的是在应用程序启动时添加一个新屏幕,该屏幕从文本字段中获取三个输入,并在提交按钮时将数据发送到下一个屏幕,这是一个 web 视图,目前它正在首先加载。

1) 我如何添加在应用程序启动时首先启动的新视图控制器,我可以在其中输入文本字段并单击按钮移动到第二个屏幕

2) 从第一个屏幕获取数据并提供给加载 url 以加载 url。

我从这里获取了项目文件:

https://github.com/paulirish/iOS-WebView-App

右侧的viewcontroller选项没有选项是初始视图 我正在使用 xcode 6.2

【问题讨论】:

您在这里有效地问的是如何开发应用程序。这是一个非常广泛的问题,与 *** 无关。您需要做一些研究,阅读一本 iOS 书籍,遵循教程并了解有关该平台的更多信息。否则,您将依赖社区为您开发应用程序。您寻求的信息可在许多不同来源的网上免费获得。 *** 旨在解决特定问题或调试错误,而不是要求开发人员为您完成工作。 是的,你完全正确。我研究了很多。我被卡住的地方是我有一个加载 url 的 webview 项目。我想在启动时添加一个带有文本字段的新视图,我输入的任何 url 都应该在下一个视图中加载它。但是当创建新视图时,现在编辑了所有的 .xib 文件,如何在启动时附加这个特定的视图????? 是的,你基本上重复了你的问题。事实上,我第一次读过它。这不会改变任何事情。网上有很多教程展示了如何设置第一个加载的 viewController,这是任何 iPhone 开发的第一步。事实上,它的 webview 没有任何区别。你需要学习更多关于 iOS 以及如何创建应用程序的知识。我建议下载专业书籍/参加免费课程而不是浏览教程 【参考方案1】:

我认为您正在从代码中加载视图控制器,就像我们在旧版本中所做的那样。希望对您有所帮助。

在这段代码中,您可以简单地将 MainViewController 更改为您自己的视图。

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

MainViewController* viewC =[[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil]; UINavigationController* navC = [[UINavigationController alloc] initWithRootViewController:viewC]; self.window.rootViewController = navC; [self.window makeKeyAndVisible];

【讨论】:

Wonderfull 你让我陷入了困境……它奏效了……非常感谢,现在我可以开始前进并开始学习了。谢谢人.....干杯 @Addi.Star 万事如意 :) 你能提供任何遵循旧版本编码风格的好的教程,以便我可以更全面地学习 @Addi.Star 我建议开始学习故事板,因为它会对您有所帮助,您也可以观看 www.surbhigarg.com 的小教程。我正在写这些 我想再问一件事,你可以在聊天室中谈谈吗,或者除了这个论坛我可以在哪里分享我的问题【参考方案2】:

您必须使用三个文本字段创建新的 UIViewController,然后从情节提要中将此 UIViewController 设置为初始视图控制器,如下所示:

完成此操作后,从您的文本字段中获取数据,例如:

NSString *text1Data = self.yourtextField.text;//Repeat for all text fields.

获取数据后,在 webViewController 中创建三个变量并将这些值分配给它们。

假设 WebVC 是你的 WebViewController,那么你可以像这样传递数据并进入 web 视图:

WebVC *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"your_WebVc_identifier"];
vc.text1DataFromFirstVC = text1Data; //repeat for all three variables

//go to web view controller
[self.navigationController pushViewController: vc animated:YES]

编辑:对于非故事板,请使用AppDelegate中的以下代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    // Override point for customization after application launch.

    ViewController *Vc = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
    self.window.rootViewController = Vc;

    [self.window makeKeyAndVisible];

    return YES;

【讨论】:

我的项目没有故事板。我创建了三个新文件。 1)sencndViewcontroller.h 2)sencndViewcontroller.m 3)sencndViewcontroller.xib 我有这三个新文件。我如何现有项目来启动这些文件,然后我将放置文本字段并从中获取数据并传递给当前在启动时加载的 webview 类 检查我上传的图片,因为你可以在 xcode 中看到我的文件,并且没有设置初始视图的选项 兄弟,您确实需要先了解基础知识。我只是给你一个例子,你必须使用你的 ViewController 对象而不是我的。 我告诉过你我对 ios 开发完全陌生

以上是关于在应用程序 IOS Objective C 启动时添加新的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

从 iOS 中的共享按钮启动应用程序 - Objective C 和 React Native

应用启动时出错:Foundation.MonoTouchException:引发了 Objective-C 异常(Xamarin iOS)

iOS:Objective -C如何在应用程序处于后台模式时更改推送通知声音有效负载?

当我们在iOS应用程序中使用Objective C输入错误的安全代码时如何显示警报

如何在 iOS 上使用 Objective-C 触发按需 ***

iOS - 在Objective c中打电话时录制语音