问题标签 [uiviewcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4310 浏览

iphone - 将视图移动到新的超级视图会自动从旧的超级视图中释放它吗?

无论如何,对我来说还不清楚,如果您使用 addSubview 将 UIView 添加到另一个视图中,它是否会自动从其父视图中释放?!?我知道一个视图只能有一个超级视图,但我不清楚如何将子视图从一个超级视图移动到另一个超级视图。

保留视图,释放(从旧的超级视图),将子视图添加到新的超级视图

或者

只需将子视图添加到新的超级视图?

0 投票
1 回答
299 浏览

iphone - 在 ViewController 和 View 之间传递句柄

我有一个根据用户输入修改的布尔数组(soundArray)。因此,它归用户正在与之交互的主 UIView 所有。同时,在另一个单独的控制器 (GestureController) 中,我需要访问这个 soundArray,所以我可以将它作为方法调用中的参数传递。

我很确定 ViewController 不应该挖掘它不拥有的 UIView 的属性(正确的 MVC),所以我在拥有主 UIView(MusicGridView)的 ViewController(MusicGridController)中创建了另一个指向 soundArray 的指针)。

在 GestureController 中,我有以下代码:

(最终我将在该数组中有更多 soundArrays)。

现在,在 MusicGridController 中,我需要在 UIView MusicGridView 中设置指向 SoundArray 的指针......所以我这样做了:

我尝试了 self.soundArray = self.view.soundArray,但它抛出了一个错误,我不明白为什么。所以我的问题是:这是一个正确的实现吗?如何从一个 viewController 获取给定 UIView 的属性?

0 投票
3 回答
10141 浏览

cocoa-touch - 像 UIViews 一样在其他 UIViewControllers 中“嵌套”UIViewControllers 是否明智?

无论如何,对我来说,我有一个相当复杂的视图,其中有一些带有自定义界面项的“托盘”。它们滑入和滑出我的根视图。我想在视图中嵌套(addSubview)项目。每个都需要在显示之前进行一些设置......并且无法在 IB 中配置(它们是 UIView 的子类)。

我想知道为每个“托盘”子类 UIViewController 是否有意义,然后让 VC 的视图属性指向“托盘”视图,我可以用我的自定义 UIView 对象填充该视图。这样我可以利用 UIViewController 中的 viewDidLoad 等方法。

我不知道其他人这样做 - 至少在我看过的几个样本中。它将创建一个同时在屏幕上显示多个视图控制器的情况。从 Navigation 控制器本身到 rootViewController 及其视图,然后是任意数量(好吧,屏幕尺寸允许)的这些小托盘视图控制器。如果是这样,响应者链是如何工作的?我假设它会从最低的 UIView 到它的封闭 VC,然后到那个 VC 的父视图,然后是那个视图的 VC,等等。重复,重复.. 直到 UIApplication ......我在找麻烦吗?

或者,我只是坚持使用 UIViews 并将子视图添加到子视图中,等等。

0 投票
2 回答
7509 浏览

iphone - 如何在 iPhone 上重新加载 uiviewcontroller

我正在尝试重新加载我在 UIViewController 上设置的值,以便在每次使用此代码转换时进行更新(来来往往都是 UIViewController):

当电话号码值在即将到来的视图中更改时,当视图插入子视图时它永远不会显示。如何让视图显示更新的电话号码?

0 投票
3 回答
25125 浏览

iphone - UIView 与 UIViewController

好的,所以我对 iphone 开发真的很陌生,而且我的知识已经很远了。我只需要帮助决定如何将这 4-6 张图片编程到我的项目中。

我基本上想制作一本漫画书,用户能够从一张图片滑动到另一张图片。所有这些图片都应该在 UIVIEW 还是 UIViewController 中?

以及有关连接这些图片的任何提示,以便我可以添加触摸代码,这将是很棒的!

0 投票
1 回答
1589 浏览

uiviewcontroller - UIViewController 在收到 nsnotification 后从 superview 中移除

我正在尝试在收到通知后从超级视图中删除 UIViewController 但它不起作用。

在我的 appDelegate 我做这样的事情:

在 SplashViewController 我注册视图以接收 NSNotifications,如下所示:

SplashViewController 出现在 Default.png 之后,并且在解析一些数据后应该平滑地消失......

在我的 TableViewControler 中,我想在 viewWillAppear 方法中发送通知,但它不起作用。

该方法被调用,但视图没有从父视图中删除。我试图将 postNotification 放入 - (void)viewDidLoad 但该方法没有被调用...

任何想法为什么这不起作用?先感谢您

0 投票
5 回答
4613 浏览

iphone - dismissModalViewControllerAnimated 非原子的?

我似乎有一个奇怪的时间问题。我打开一个 uiimagepicker 作为模式视图。当用户选择图像或我想要拍摄图像时,将其保存到变量中,然后以模态视图的形式打开电子邮件界面。

我的问题是我在 imagepicker 上调用了dismissModalViewController,然后为我的电子邮件界面调用了 presentmodalviewcontroller,但是 imagepicker 并没有及时消失以显示电子邮件视图。有没有办法“等待”那行代码完成?

我很确定我设计错了,但如果可以的话,请帮助我。

0 投票
1 回答
864 浏览

iphone - 将我的 viewController 移到 NavController 下,现在 awakeFromNib 和 initWithCoder 不会触发?

我有一个有点复杂的视图,我将它放在一个单独的(基于视图的模板)项目中(视图控制器在 MainWindow.xib 中用橙色图标表示)。现在已经够远了,我决定将它移到另一个项目中,它将由导航控制器管理。它是从 UINavigationController 相当简单的pushViewController: animated:方法调用的。

MyViewController 有一个相应的 nib 文件(也许我的一些困惑是类和 nib 的名称几乎相同,只是后缀 .m、.h 和 .xib 不同)。当这是在初始项目中启动时的初始视图时,实例化时将调用awakeFromNibinitWithCoder 。现在似乎 只有viewDidLoad被调用了。

我对什么/为什么会有这样的差异感到困惑?!?我在 SO 上找到了一些其他相关的线程,但它们仍然让我摸不着头脑,回答如下: “当控制器本身从 nib 取消归档时调用 awakeFromNib。创建/取消归档视图时调用 viewDidLoad。这个当控制器的视图存储在单独的 nib 文件中时,区别尤其重要。”

区别似乎取决于什么,确切地说,正在取消归档 ViewViewController。因此,如果 ViewController 正在被实例化并被推送,那么我应该只期望 viewDidLoad 被调用?另一方面,如果我的 ViewController 有一个 IBOutlet(以及一个表示它的对象 VC 对象已被拖到我的 Nib 中),那么我可以期望 initWithCoder 和 awakeFromNib 都被调用?

有人可以帮我纠正一下吗?如果在非常具体的情况下任意调用不同的方法,似乎更难以重用这些视图/控制器......或者,当然是这样,这正是它们被调用的原因,而不是非常具体的情况......我只是还不完全理解每种方法之间的划分。

有人愿意帮助我纠正吗?

0 投票
4 回答
27086 浏览

iphone - 如何动态设置 UIView 的子视图(iPhone)?

我肯定在这里做一些完全愚蠢的事情,希望有人能告诉我什么!总之,我想在单击按钮(我将使用分段按钮)时以编程方式切换子视图。它不需要动画。理想情况下,我会从笔尖加载这些视图的内容。

我正在将一个从笔尖初始化的 UIViewController 子类推到一个导航控制器上。此视图控制器及其“默认”视图显示正常。这个笔尖包含:

也许我在我的 IB 网点上犯了一个错误?它们连接如下:

并在哪里switchableView声明:

我被困在替换这个 UIView 的内容上。首先,我只想在视图第一次出现时将其设置为默认值。一旦我得到了它,将它交换到其他东西应该很容易,因为我已经可以捕获分段按钮生成的事件。有人可以告诉我我做错了什么吗?

该方法调用(原样viewDidLoad),但都没有帮助。我想我[switchableView addSubview:view]做错了。我也尝试过switchableView = view,但是在 Java 和 Perl 的安全性方面有很长一段时间让我不能 100% 确定尝试是否正确!

这里希望有人可以让我直截了当。提前致谢,

保罗

0 投票
1 回答
5971 浏览

iphone - 为什么会过度释放?UINavigationController / UITableview

我从 TableViewController 的 didSelectRowAtIndexPath 方法中将视图控制器推送到导航控制器的堆栈上,如下所示:

如果我取消注释最后一行,则应用程序在返回时崩溃并出现错误:

再深入一点,我发现崩溃可以进一步缩小到 MyViewController 的 dealoc 方法中对 [super dealoc] 的调用。通过取消注释“[super dealoc]”我们不会崩溃。

我无法进一步缩小范围。“超级”将是 UIViewController 类,我无法进一步调查该 dealoc 方法......可以吗?也许有一种方法可以查看 0xd4f860 究竟指向什么,但我不知道如何?有任何想法吗?