Tag: viewcontroller

iOS开发课程:从Xcode,Git,MVC开始

Xcode中包含哪些控件,如何使用Git保存代码版本,什么是Application类,什么UIViewController生命周期以及介绍Model-View-Controller设计模式… 您是快速编程语言的新手吗? ***立即开始Swift课程! *** 应用程序的应用程序对象的主要作用是处理传入的用户事件的初始路由。 它将控制对象( UIControl类的实例)转发给它的操作消息调度到适当的目标对象。 应用程序对象维护一个打开窗口的列表( UIWindow对象),通过这些窗口可以检索应用程序的任何UIView对象。 进一步了解Apple UIViewController类定义了所有视图控制器共有的共享行为。 您很少直接创建UIViewController类的实例。 相反,您可以继承UIViewController子类,并添加管理视图控制器的视图层次结构所需的方法和属性。 视图控制器的主要职责包括: 通常根据对基础数据的更改来更新视图的内容。 响应用户与视图的交互。 调整视图大小并管理整个界面的布局。 与应用程序中的其他对象(包括其他视图控制器)进行协调。 进一步了解Apple 模型-视图-控制器(MVC)设计模式为应用程序中的对象分配以下三个角色之一:模型,视图或控制器。 该模式不仅定义了对象在应用程序中扮演的角色,还定义了对象之间的通信方式。 三种类型的对象中的每一种都通过抽象边界与其他对象分开,并跨这些边界与其他类型的对象进行通信。 在应用程序中,某些MVC类型的对象的集合有时称为“ 层” ,例如模型层。 MVC对于可可应用程序的良好设计至关重要。 采用这种模式的好处很多。 这些应用程序中的许多对象倾向于更可重用,并且它们的接口倾向于更好地定义。 具有MVC设计的应用程序也比其他应用程序更容易扩展。 此外,许多可可技术和体系结构都基于MVC,并且要求您的自定义对象扮演MVC角色之一。 进一步了解Apple *** GitHub项目*** ***快速的MVC设计模式*** *** Xcode的MVC模块模板*** 你完成了! 拍! 拍! 请记住,成功的秘诀是不断学习和与同事沟通,包括自我教育。 这是有关iOS开发入门的小指南。 在Apple Developer网站上了解更多信息。 不要停止自我教育。 订阅我的帐户以获取有关新故事的通知。 如果您还有问题,请在评论中写。 我将在以后的文章中回答。

如何在具有不同故事板的ViewController之间进行选择

当您想在情节提要之间划分视图时,此功能将很有用,例如,当您在团队中工作时,您的同事可能正在一个特定的情节提要上工作,而您在另一个情节提要中工作而不会合并大问题! 让我们使用Single View Application模板在xcode中创建一个新项目: 为了在视图控制器之间进行隔离 ,我们将需要一个导航控制器 ,所以让我们开始吧,从xcode的导航器端转到Main.storyboard文件,然后从画布中选择ViewController ,然后在顶部栏菜单中选择编辑器/嵌入/导航控制器,如下所示: 然后转到“ 对象库”部分,选择“ 情节提要参考控件”并将其拖动到画布上: 让我们创建另一个 情节提要板,然后转到顶部栏菜单,选择File / New / File 选择“情节提要”选项,单击“下一步”,然后为其命名为“ 另一个”: 现在,从导航部分中选择Another.storyboard ,并在画布中从Object Library部分中拖动一个新的ViewController : 让我们继续在Another.storyboard上工作,我们需要为画布中的ViewController为其Storyboard Id Identity提供一个值,我们可以随便命名它,让我们使用此值命名: AnotherViewController 到目前为止,到目前为止还不错,现在让我们回到Main.storyboard文件,然后在画布中选择ViewController并从ViewController中的Object库中拖动一个Button控件: 然后按下控制键并单击鼠标左键将鼠标悬停而不释放,然后将其释放到我们之前在画布中创建的情节提要参考控件中,这样将出现一个弹出窗口,选择“ 显示”选项: 最后,我们在Main.storyboard中需要做的最后一件事是配置Storyboard Reference,一旦单击它,右侧的检查器面板将为我们提供一些选项,例如Storyboard ,该选项设置为Another值即另一个的名称。我们使用AnotherViewController值设置的故事板文件和参考ID 表示故事板ID,我们将其提供给位于another.storyboard文件中的另一个ViewController 现在运行它,即使知道两个控制器都位于不同的故事板文件中,也可以在视图控制器之间进行导航。

如何检测用户在Swift中的不活动?

我需要实现一个空闲超时function。 要做到这一点,我只需要知道如何检测用户触摸屏幕(类似于Android中使用的onUserInteraction方法)。 那么我怎么才能发现用户与ViewController交互的时候呢? PS:如果我问这是因为你在互联网上找不到什么好东西!

电影播放器​​在Swift中

我正在快速地做简单的电影播放器​​。 我有像这样的ViewController播放器。 我想要这样 这是代码 import UIKit import MediaPlayer class DetailViewController: UIViewController { var moviePlayer:MPMoviePlayerController! override func viewDidLoad() { super.viewDidLoad() var url:NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v") moviePlayer = MPMoviePlayerController(contentURL: url) moviePlayer.view.frame = CGRect(x: 16, y: -100, width: 600, height: 400) moviePlayer.view.sizeToFit() self.view.addSubview(moviePlayer.view) moviePlayer.fullscreen = true moviePlayer.controlStyle = MPMovieControlStyle.Embedded } }

如何在swift中在这两个视图控制器之间传递数据

在这种情况下,我有两个VC之间的tabbar控制器和导航控制器,这意味着首先我想在第一个VC和tabbar控制器之间传递数据,其次我想要从标签栏控制器传递相同的数据到导航控制器,并最终到最后一个VC,我search例如在networking,但我没有发现任何有用的东西。 请帮助我在这两个视图控制器之间传递数据,任何例子都会很棒,thaank的。

如何在购买后立即启动新视图,以及如何在App Launch中将此视图变为新视图?

我想添加一个应用程序内购买,使用户能够解锁一些隐藏的内容。 一旦购买,我需要用户自动redirect到一个新的视图。 而且,这个新的观点将成为App推出的主要观点。 我使用MKStoreKit,新的testing用户现在可以成功进行应用内购买。 购买此产品时,用户必须退出应用程序并重新启动以在启动时访问新的视图。 但是,如果我删除应用程序并通过Xcode重新安装它,应用程序似乎忘记了应用程序内购买,并在启动时用户redirect到旧的视图。 这是我在AppDelegate.m中添加的内容: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [MKStoreManager sharedManager]; if([MKStoreManager isFeaturePurchased:@"com.company.featuretounlock"]) { [self.window addSubview:_newWelcomeView.view]; } else {[self.window addSubview:_viewController.view]; } [self.window makeKeyAndVisible]; return YES; } 当testing用户第一次进行购买时,这是一个窍门。 但是,如果应用程序被删除并重新安装,则会出现旧的视图。 如果用户试图再次购买,他被告知已经购买了,他被告知点击“确定”下载。 之后,如果用户退出应用程序并重新启动它,它仍然是旧的视图出现。 如何在购买后自动将用户redirect到新的View? 你可以在这里下载我的代码示例

如果基于前一个视图控制器的声明

这是我到目前为止: – (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; if (preivousViewController isEqualToString:@"…") { if ([self.filteredArray count] == 0) self.person = self.users[indexPath.row]; else self.person = self.filteredArray[indexPath.row]; self.mugshot = cell.imageView.image; [self performSegueWithIdentifier:@"SelectPerson" sender:self]; } else { if ([self.filteredArray count] == 0) self.person = self.users[indexPath.row]; else self.person = self.filteredArray[indexPath.row]; self.mugshot = cell.imageView.image; [self performSegueWithIdentifier:@"selectVisitee" […]

在不加载视图的情况下接收通知

正如我在这个问题中解释的,我试图将数据从一个TableView中的UISwitch传递到另一个ViewController。 但是,我希望在设置视图(包含UISwitch)被解散时传递数据。 在这个伟大的答案的第三个步骤之后,我使用UserDefaults来传递数据,并尝试使用NotificationCenter来更新UserDefaults值,当解散设置视图。 要更新用户默认值更改时,您可以让您的设置控制器解雇时发布通知。 然后,您应用中的其他VC可以侦听此通知并根据需要进行更新。 我已经尝试检索viewDidLoad内的通知,但值不会刷新,因为解散设置视图不会每次加载新的ViewController。 每次设置视图被解除时,我怎样才能接收/阅读通知? 更确切地说,我在哪里以及如何编写阅读通知的代码? 以下是发布通知的代码: class SettingsViewController: UIViewController { @IBAction func doneButton(_ sender: UIButton) { self.dismiss(animated: true, completion: nil) NotificationCenter.default.post(name: Notification.Name("nSound"), object: nil) } 以下是检索通知的代码: class ViewController: UIViewController { @IBOutlet weak var testLabel: UILabel! var savedValue = UserDefaults.standard.bool(forKey: "sound") override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver(self, selector: #selector(ViewController.viewDidLoad), name: Notification.Name("nSound"), object: nil) […]

无法将连接器从IBOutlet链接到View Controller

我已经创build文件AViewController.h和AViewController.m,为视图控制器 – 我已经将此视图控制器的自定义类设置为AViewController 。 我在AViewController.h中定义了一个对象,它是另一个B类的实例: @property (weak, nonatomic) IBOutlet B *object_b; 我希望能够将这个IBOutlet链接到视图控制器,以便我可以使用它来调用B类的函数来在视图控制器上显示事物。 但是,我无法做到这一点 – 试图从对象拖到一个视图控制器什么都不做。 对象旁边没有错误或黄色警告符号。 我试图从视图控制器到这个对象,也试图从故事板的菜单。 我的视图控制器应该重命名为“AViewController”? 我有其他视图控制器名称不同于他们的自定义类,他们没有任何链接问题。 我尝试了以下解决scheme: XCode 6:不能连接任何IBOutlet到ViewController和Xcode 6中的错误 – 视图控制器没有名为(子视图)的sockets ,但他们没有工作。 我正在使用XCode 6.2 这是一个非常烦人的问题; 在前面的问题中有一些关于错误报告的讨论,但是我不确定它是否被解决了。 感谢任何帮助!

如何在视图控制器中呈现apns令牌?

我不明白如何在视图控制器中呈现作为string的apns令牌。 尝试了很多东西,没有制定出来。 在迅速4。