Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >不使用Nib文件时初始化ViewController

不使用Nib文件时初始化ViewController
EN

Stack Overflow用户
提问于 2015-05-28 11:29:31
回答 1查看 26关注 0票数 0

我正在将使用nib文件的项目转换为我使用故事板的项目。这个应用程序有一个主屏幕(HomeVC),加载到导航控制器中。当应用程序启动时,它启动一个数据处理程序,从多个源中提取rss数据并将它们存储在CoreData中。在HomeVC中,我实例化了堆栈中的下一个视图(FeedVC),以便在数据处理程序完成下载提要时调用一个reloadData()方法。为了实例化FeedVC,我在HomeVC中设置数据处理程序时编写了以下代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// This initializes the Feed VC for use later in the VC
    FeedViewController *view = [[FeedViewController alloc] initWithNibName: @"FeedViewController" bundle: nil];
    self.feedViewController = view;

数据处理程序完成后,我用以下代码重新加载表视图。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[self.feedViewController.feedsTableView reloadData];

这个效果很好。

这个新项目是用Swift编写的,正如我提到的,它使用的是故事板。我的问题是当我打电话的时候

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.feedViewController!.feedsTableView.reloadData()

编译器告诉我它是零。这是可以理解的,因为我不再有一个nib来实例化视图。当我使用童话板而不是nib文件时,如何实例化FeedVC?

尝试解决方案

这是我给VC命名的地方。

下面是我输入的设置数据处理程序的方法中的代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewControllerWithIdentifier("FeedViewController") as! FeedViewController
        self.feedViewController = vc

这是我的故事板名。

也许问题是feedsTableView而不是feedViewController。我已经将feedsTableView声明为FeedViewController中的一个选项。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@IBOutlet weak var feedsTableView: UITableView!

保重,

琼恩

EN

回答 1

Stack Overflow用户

发布于 2015-05-28 11:34:27

首先,必须使用接口生成器在标识检查器中设置存储板ID

然后,您可以在任何需要实例化FeedViewController的地方调用以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("nameOfYouPut") as! FeedViewController

希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30515526

复制
相关文章
didReceiveMemoryWarning iOS开发
iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露。
Charlie_W
2018/10/19
2.6K0
【IOS开发基础系列】Storyboard专题
        如果你的 app 有大量的窗口,故事板能帮你减少许多用于从一个窗口转到另一个窗口的导航代码。与每个viewcontroller一个单独的 nib 文件不同,你的 app 只需用一个故事板文件(其中可以包含所有的viewcontroller 以及它们之间的关系)即可。
江中散人_Jun
2023/10/16
1.3K0
【IOS开发基础系列】Storyboard专题
iOS对UIViewController生命周期和属性方法的解析
        作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有条有理的展示在我们的View层上。iOS中的UIViewController是UIKit框架中最基本的一个类。从第一个UI视图到复杂完整项目,都离不开UIViewController作为基础。基于UIViewController的封装和扩展,也能够出色的完成各种复杂界面逻辑。这篇博客,旨在讨论UIViewController的生命周期和属性方法,在最基础的东西上,往往会得到意想不到的惊喜。
珲少
2018/08/16
3K0
iOS对UIViewController生命周期和属性方法的解析
iOS SEL的理解与使用 原
   有很多人,认为block的推广可取代代理设计模式,其实block并不能取代代理,代理的模式可以让代码逻辑性更强,更整洁,也会有更高的可读性和可扩展性。相比之下,我觉得block更多的是取代了选择器@selector。
珲少
2018/08/15
8070
awakeFromNib小总结
在使用IB的时候才会涉及到此方法的使用。当.nib文件被载入的时候,会发送一个awakeFromNib的消息到.nib文件里的每一个对象,每一个对象都能够定义自己的awakeFromNib函数来响应这个消息。运行一些必要的操作。
全栈程序员站长
2022/07/18
4640
awakeFromNib小总结
探索IOS App的生命周期之启动篇
因为刚刚涉入IOS APP开发,对IOS应用的使用的生命周期不是很熟,所以写下此日志,以防时间一长又忘记了。
江中散人_Jun
2022/03/08
6140
Xcode:处理故事板的更好方式 享受Interface Builder的提示和技巧
Apple在Xcode 8中对Interface Builder进行了很大的改进。使用大小类变得更加直观,缩放故事板的能力非常方便,Interface Builder中的完整预览功能非常棒。对于那些对使用Interface Builder犹豫不决的人来说,这可能会成为一个交易破坏者。
iOSDevLog
2018/12/28
1.4K0
Xcode 5 中 xib 文件格式的调整
Xcode 升级到 5 之后, iOS 的 xib 文件发生了变化, 导致 Xamarin Studio 中自带的 iOS ViewController 模板出错了, 本文分析发生的错误, 并给出对应的解决方法。
beginor
2020/08/10
1.3K0
Xcode 5 中 xib 文件格式的调整
ViewController官方文档
UIWindow *window = [[UIWindow alloc] initWithFrame:[UIScreen mainscreen] bounds]; levelViewController = [[LevelViewController alloc] init]; window.rootViewController = levelViewController; [window makekeyAndVisible];
nimomeng
2019/02/25
3.2K0
制作动态framework与静态framework的那些坑
今天我们来看看制作framework---dynamic和static这两中库需要注意的
大话swift
2020/05/08
2.1K0
制作动态framework与静态framework的那些坑
【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图;
韩曙亮
2023/03/27
5K0
【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
【Qt】使用QPalette设置QPlainTextEdit颜色时,不生效
最近在看《Qt5.9 C++开发指南》这本书,这本书可以从异步社区上下载源代码,不过需要注册有点麻烦:
ccf19881030
2021/01/20
2.6K0
【IOS开发基础系列】UIViewController专题
        在UIViewController中,view(黑体的view指的是controller的view属性)有两个循环:加载和卸载循环。当程序的一部分向controller请求view的指针且view不在内存中时,view会进入加载循环,controller会将view加载入内存。
江中散人_Jun
2023/10/16
7580
【IOS开发基础系列】UIViewController专题
Objective-c 知识总结 -- @property
@property 只是一个编译器指令,意思是告诉编译器要干嘛,当然它的意思就是要求 Xcode 做属性声明了。
半纸渊
2018/09/04
1.4K0
Objective-c 知识总结 -- @property
EditPlus如何设置保存时不产生.bak备份文件?
大家在使用EditPlus时都会遇到这么一个问题,就是每次保存或者修改后保存时都会生成一个.bak后缀的文件,这个是一个缓存文件。那如何才能不生成该缓存文件呢?操作如下图所示:
黑泽君
2018/10/11
1.5K0
关于IB_DESIGNABLE / IBInspectable的那些需要注意的事
IB_DESIGNABLE / IBInspectable 这两个关键字是在WWDC 2014年"What's New in Interface Builder"这个Session里面,用Swift讲过一个例子。也是随着Xcode 6 新加入的关键字。
一缕殇流化隐半边冰霜
2018/08/30
1.6K0
关于IB_DESIGNABLE / IBInspectable的那些需要注意的事
Swift 动态创建ViewController
class ViewControllerHelper: NSObject { /// 通过ClassName动态创建ViewController /// - Parameter className: calssName /// - Returns: ViewController class func getViewControllerWithCalssName(_ className: String) -> UIViewController {
赵哥窟
2020/07/28
1.8K0
iOS应用构建与部署小结
上篇文章介绍了Objective-C的基本概念,本文就来接着看如何创建我们的第一个简单iOS应用, 本着简单可复现的方式,我们会以尽可能小的成本来构建并在真机运行iOS应用。 也就是说, 不用越狱, 也无需开发者账号。当然,一台iPhone手机还是需要的,最好还有一台Mac。
evilpan
2023/02/12
2K0
iOS应用构建与部署小结
IOS 多线程、进程
1 let thread = Thread.init(target:self, selector:
用户5760343
2019/07/08
5210
点击加载更多

相似问题

ViewController与不使用Nib文件的对比

20

由xib (nib)文件初始化的iOS Swift子类ViewController

12

尝试使用IBAction加载没有Nib文件的ViewController

22

从nib文件所有者加载ViewController

21

在NIB中更改ViewController

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文