为什么你的App总是卡在第一个页面?
刚接触iOS开发时,你是否盯着空白的Xcode界面手足无措?明明设计了多个界面,却总在启动后就定格不动?这个看似魔法般的页面跳转秘密,就藏在今天要讲的UIViewController里。
UIViewController是什么?
想象你正在搭积木:
- 每个彩色积木块代表一个界面
- 透明底板就是UIViewController
- 底板负责控制积木的摆放规则
在iOS开发中,它就是管理屏幕内容的”大脑”,控制着:
- 界面元素布局(按钮/文字/图片位置)
- 用户点击事件处理
- 页面切换动画效果
生命周期:像人类呼吸般重要
打开手机天气App时会发现:
- 进入时自动刷新数据(viewDidLoad)
- 切换城市时更新界面(viewWillAppear)
- 离开时停止定位(viewDidDisappear)
// 经典生命周期方法
override func viewDidLoad() {
super.viewDidLoad()
print("界面加载完成,可以初始化数据了!")
}
四步创建你的第一个页面
- 在Xcode新建Swift文件,类型选UIViewController
- Storyboard拖入按钮和文字框
- 按住Ctrl把按钮拖到代码创建@IBAction
- 在点击事件里修改文字框内容
试试这个魔法代码:
@IBAction func buttonTapped(_ sender: Any) {
textLabel.text = "Hello, 第一个控制器!"
}
新手常踩的五个坑
- 忘记连接Storyboard的IBOutlet导致崩溃
- 在viewDidLoad里获取界面尺寸会得到错误值
- 多个控制器同时修改同一数据引发混乱
- 循环引用导致内存泄漏(记得用weak!)
- 把全部代码都塞进一个控制器
小编观点:UIViewController就像乐高底板,既要保证每个模块独立运作,又要让它们能默契配合。建议新手先用Storyboard拖拽感受页面流转,再逐步过渡到纯代码实现,别忘了在模拟器里疯狂点击测试你的作品!