问题标签 [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 投票
1 回答
610 浏览

iphone - 如何在调试器中查看属性值

我有一个 UIViewController 并希望查看诸如 myview.view.hidden 之类的属性。在另一个声明 UIViewController 实例的类中,我可以通过代码分配和读取属性,但想知道各个点的值。在调试器控制台中,我不能执行“po myview.view.hidden”或“p myview.view.hidden”。还有另一种方法吗?

0 投票
1 回答
4404 浏览

iphone - presentModalViewController:animated: 关闭后崩溃

我目前遇到UIViewController's的问题presentModalViewController:animated:

我使用以下代码来设置和显示模态视图控制器:

dismissModalViewControllerAnimated:应用程序(在 iPhone 模拟器中运行)一被调用就会崩溃。GDB 说它在objc_msgSend.

如果我注释掉最后一行代码(导航控制器的发布)一切正常,但我正在泄漏UINavigationController(如预期的那样)。

这到底是怎么回事?

0 投票
2 回答
4296 浏览

iphone - 将子视图添加到视图层次结构中

我希望在用户单击按钮时出现一个视图。我的层次结构如下所示:

主窗口

pages 是 pageController 对象的 NSMutableArry。这些钩在笔尖上。这些笔尖是用户在滚动视图中浏览的页面。

InfoButton 点击​​的连接方式如下:

InfoButton 位于 ScrollView 中的页面之一上。我已经注释掉了已经尝试过的不同代码。它都没有添加视图。没发生什么事。有没有办法让 TopView 作为层次结构中的顶视图?

0 投票
4 回答
80837 浏览

iphone - 视图控制器:如何以编程方式在视图之间切换?

简而言之:我想要两个全屏视图,我可以在视图 A 和视图 B 之间切换。我知道我可以只使用选项卡栏控制器,但我不想。我想看看这是如何手工完成的,以了解幕后发生的事情。

我有一个 UIViewController 作为根控制器:

contentView 连接到我作为子视图添加到 Nib 的“视图”的 UIView。这有绿色,我看到它全屏。工作正常。

然后,我以几乎相同的方式创建了另外两个视图控制器。ViewControllerA 和 ViewControllerB。ViewControllerA 有蓝色背景, ViewControllerB 有黑色背景。只是看看哪个是活跃的。

所以,在 myRootController 的实现中,我这样做:

顺便说一下,-initWithNib 方法如下所示:

这样可行。当我启动应用程序时,我会看到来自 ViewControllerA 的视图。但现在最大的问题是:视图控制器通常具有所有这些方法,例如:

  • (void)viewWillAppear:(BOOL) 动画;
  • (void)viewDidDisappear:(BOOL)动画;
  • (void)viewDidLoad;

...等等。如果我在没有标签栏控制器的情况下以“我的”方式进行操作,谁或什么,或者如何调用这些方法?我的意思是:如果我分配 ViewController 的类并且视图 get 是可见的,我是否需要注意调用这些方法?它如何知道 viewWillAppear、viewDidDisappear 或 viewDidLoad?我相信标签栏控制器在引擎盖下具有所有这些“聪明”。还是我错了?

更新:我已经测试过了。如果我释放视图控制器(例如:ViewControllerA),我将不会在 viewDidDisappear 上收到任何日志消息。只有在分配和初始化 ViewControllerA 时,我才会得到一个 viewDidLoad。但就是这样。所以现在所有的迹象都代表了 UITabBarController 的聪明;)我必须弄清楚如何复制它,对吧?

0 投票
11 回答
64515 浏览

iphone - UIViewController -viewDidLoad 没有被调用

作为 Cocoa 的新手,我在Interface Builder,UIViewController和朋友方面遇到了一些问题。

我有一个在 xib 中定义的UIViewController子类UIView,并且控制器的视图出口连接到视图。xib 的“文件所有者”设置为myViewcontroller子类。

在这个实例中,以下用于加载控制器/视图(从主视图控制器)的代码无法按预期工作:

在 MyViewController 的方法中,我放置了断点并记录消息以查看发生了什么:

预期结果

-initWithNibName和方法都-viewDidLoad被调用,并显示了myViewController的视图。

观察结果

只有-initWithNibName被调用,视图不显示。

我错过了什么吗?任何人都可以推荐任何要检查的东西吗?(特别是在非常不透明的界面生成器工具中)。

0 投票
2 回答
3619 浏览

iphone - 为什么加载视图控制器时不调用我的 initWithNib 方法?

我有一个继承自 UIViewController 的类。在那里,我想像这样进行一些 ivar 初始化:

出于某种原因,我确实看到了从笔尖加载的内容。但由于另一个原因,这个初始化程序永远不会被调用。我从来没有收到日志消息。那有什么问题?我肯定有笔尖,所以实际上必须调用它,对吗?

0 投票
4 回答
14843 浏览

iphone - Iphone SDK - 动画子视图

我有一个具有 UIWebView 和 OptionsPane 的视图(带有自定义视图的自定义 UIViewController)。

我希望在显示视图时,将选项窗格(位于主视图的顶部)翻转到位。我正在使用代码,我得到了一个奇怪的结果。

第一次显示视图时,选项窗格似乎已经可见...当我在导航控制器上按 BACK 并再次拉起视图时,动画效果完美。

任何人都可以对这个话题有所了解吗?

0 投票
3 回答
13644 浏览

iphone - UINavigationController NIB 需要文件的所有者才能查看?

我在 Interface Builder 中设置 View Controller nib 的默认 View Outlet 时遇到问题。这是我的设置:

我有一个基于 TabBar 的应用程序,在其中我将导航控制器加载为模态视图...

MenuController 本身的结构如下:

这一切正常,除了加载 MyNavCtrlrSubClass 时,我收到以下错误:

Loaded the "MenuController" nib but the view outlet was not set

很清楚为什么会发生这种情况 - File's Owner 没有用于其视图的插座连接。问题是我应该设置什么作为它的视图,并且必须首先设置一些东西吗?导航栏是 MenuController.xib 中唯一的候选者,但这样做只会将 UINavigationBar 本身调整为全屏模式,可以这么说。

我显然在 IB 中遗漏了一些东西,但是什么?MyNavCtrlrSubClass.m 本身没有代码,除了 UINavigationController 的 IBOutlet。我在尝试完全在 IB 中进行设置是否犯了错误?这个想法是将模态导航控制器保留在一个 nib 中,并将它加载的所有视图都加载到单独的 nib 中,但是由于 MenuController 只是导航的容器并且本身不包含视图,因此我显然设计错了。:)

如果您想知道我为什么不以其他方式设计它,那是因为我试图服从我(可能是错误的)对 IB 如何要求您建立理想层次结构的看法。

任何帮助将不胜感激。

0 投票
2 回答
1722 浏览

iphone - 如何呈现具有固定 UIToolbar 的模态视图控制器?

我正在尝试设置一个位于固定工具栏下方的模态视图控制器。因此,当模态视图滚动时,工具栏应该保持在顶部。Safari 应用程序会这样做,例如,当点击书签按钮时。工具栏保持不变,按钮改变..

我尝试了一些方法,例如将工具栏推到前面,最终根本不使用 presentModalViewController 方法,而是手动将新视图动画化到子视图中。但这带来了一些其他问题。

0 投票
3 回答
4751 浏览

iphone - iPhone SDK 2:UIButton 在从 nib 文件加载的嵌套视图中不起作用

我在基于 Nib 的视图中有一个按钮,它的行为不像按钮(永远不会调用目标方法)。我试图动态添加按钮,但它没有帮助。

我将尝试描述应用程序结构(因为我怀疑它可能会导致此问题)并且我可能没有使用正确的设计模式。

  • 视图A绑定到控制器AC。(从根控制器中的 nib 加载并推送到导航控制器。)

  • 视图 A 嵌入了多个子视图。让我们称其中之一为A'。

  • 在 AC::viewDidLoad 方法中:

    我将 3 个视图控制器a、b、c加载到 AC 的成员变量中。

根据应用程序设置,我将这些控制器之一的视图添加为 A' 的子视图

本质上在 AC::viewDidLoad 方法中:

现在 a.view 有一个按钮(已标记)。我搜索该标记。并向其动态添加目标方法。此时 a.view 显示为 A' 的子视图,并且该按钮也可见。伟大的。

但是触摸交互没有发生,或者触摸动作被我的方法以外的其他人使用。

我尝试了很多变体,但执行从未达到我的方法。我什至尝试将目标添加到所有 touchUpEvents。没有。我检查了启用事件中的控制值,这是正确的。该按钮只是以某种方式被禁用。我用一个视图编写了一个简单的应用程序,并做了同样的事情,它奏效了。所以我认为这与我将多个部分组合在一起的方式有关。

有任何想法吗?

我希望我有像 Spy++ 这样的东西,在那里我可以看到消息队列并查看谁在使用这些消息而不是我的应用程序,甚至查看类对象。我是这个平台的新手。 我之前与此的斗争是在这个线程上。