问题标签 [uinavigationcontroller]

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 投票
2 回答
2288 浏览

iphone - 如何将 appDelegate 中的信息传递到 UINavigationcontroller 中的视图控制器之一

在我正在开发的 iphone 应用程序中,我使用自定义类来管理与主机的网络通信。名为protocolClass 的类是appDelegate 中的ivar 和applicationDidFinishLaunching: 方法中的alloc + init。

现在,每当 protocolClass 从主机接收数据时,它都会在其委托(我将其设置为 appDelegate)中调用 protocolClassDidReceiveData: 方法。然后我需要更新 UINavigatorController 中一个 customViewController 中的数据。

我应该只添加对我需要在 appDelegate 中更新的 customViewController 的引用吗?还是有其他更有效的方法?

如果我要保留对 customViewcontroller 的引用,那么内存使用的后果是什么?

提前致谢。

0 投票
4 回答
4342 浏览

iphone - ABPeoplePickerNavigationController 被解除后的自定义操作

我正在向用户展示一个 ABPeoplePickerNavigationController 并要求他们选择一个联系人。一旦他们选择了一个用户,我想让他们发送到消息应用程序或电子邮件应用程序,具体取决于他们选择的属性。但是,我不知道如何自定义模式选择器被解除后发生的操作。

那么,我该怎么做呢?谢谢!

0 投票
6 回答
37407 浏览

iphone - UINavigationController popToRootViewController,然后立即推送新视图

我有一个带有两个选项卡的 tabBarController,其中第一个包含 NavigatorController 的实例。navigatorController 使用自定义视图控制器“peersViewController”启动,该视图控制器列出了 tableView 上的所有网络对等点。选择一个对等点后,“FilesListViewController”的一个实例(列出 c:\ 目录中的文件)被推送到 navigationController 堆栈中。

在这个 filesListViewController 中,我有一个按钮可以让它导航到文档目录。为此,我将接口连接到在 rootViewController 中调用 gotoDirectory:(NSString*)path 方法:

但是,当我按下该按钮时,navigationController 确实将我的视图弹出到根视图控制器,但是我实例化的 FilesListViewController 没有出现。从日志中,我知道确实调用了自定义 initWithFiles 方法,并且确实发生了网络东西来获取文件名。

对此还有其他一些奇怪的地方。我尝试单击第二个选项卡,然后单击返回第一个选项卡,然后哇啦!我需要的文件名在那里。看起来数据和 filesListViewController 确实被推入了 navigatorController 堆栈,但显示没有刷新而是卡在 rootViewController (peersViewController) 的屏幕上。

我做错什么了吗?

——本。

-- 在发布问题 15 分钟后编辑。我找到了一种解决方法,但让我感到困扰的是 pop 然后 push 不起作用。

似乎不应该以这种方式规避导航控制器,我可能不得不释放原始堆栈中的所有视图控制器。然而,这确实适用于 iphone 3.0 模拟器。

如果我使用这段代码,应该如何处理内存释放?我应该得到视图控制器的原始 NSArray 并释放所有内容吗?

0 投票
2 回答
1722 浏览

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

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

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

0 投票
2 回答
13368 浏览

iphone - UINavigationBar 标题和右键

我有一个导航控制器,其中有一个视图控制器:

而且我还有另一个导航控制器——NavigationController2。我想从另一个视图控制器 - ViewController2 调用 MyViewController,它被推送到 NavigationController2 中。-NavigationController2 --ViewController2

我通过以下方式进行操作:

这是 MyViewController 的 viewWillAppear 方法(被调用的那个):

当用户开始编辑文本字段时,我正在向导航栏添加一个“完成”按钮:

问题是:如果我从被推入 NavigationController2 的 ViewController2 调用 MyViewController,然后我从它自己的 NavigationController1 调用 MyViewController,则不会添加导航栏的标题和完成按钮。但是,正在调用 MyViewController 的 viewWillAppear 和 textFieldDidBeginEditing 方法。

有什么问题,我该如何解决?

谢谢。

0 投票
7 回答
16743 浏览

iphone - UINavigationController 和自动旋转

我有一个 UIViewController 可以为其他所有内容返回YES。使用堆栈顶部的那个视图,我用来推送一个新的. 新控制器返回.shouldAutorotateToInterfaceOrientation:UIDeviceOrientationPortraitNOpushViewController:animated:UIViewControllerYESshouldAutorotateToInterfaceOrientation:

第一个视图拒绝旋转(如预期的那样)。推送第二个视图后,用户可以旋转设备,并且 UI 将旋转(也如预期的那样)。如果第二个视图处于横向模式并且用户按下后退按钮(调用popViewControllerAnimated:),则第一个视图将出现旋转(意外!)。

如果用户将设备旋转回纵向,则视图将旋转,然后像以前一样停留在纵向模式。这可行,但在用户旋转回来之前,这对用户来说很难看。所以我正在寻找一种方法让这个视图保持纵向模式。

到目前为止,我发现的唯一解决方法是使用-[UIDevice setOrientation:],它会引发警告(orientation是只读的),但由于它是实际定义的,所以可以工作。这是一个巨大的黑客,我想要一个真正的解决方案。为了寻找真正的解决方案,我将 GDB 附加到照片应用程序 (MobileSlideshow.app) 并发现它也使用-[UIDevice setOrientation:]. 作为一个内部应用程序,虽然我猜他们有不同的规则。

是否有正确的方法来实现预期的自转行为?

0 投票
2 回答
1452 浏览

iphone - 导航回视图时 UIWebView 变为空白

我有一个加载 UIWebView 的应用程序。这很好用。用户可以单击 Web 视图中的链接,然后创建一个新的视图控制器/Web 视图来加载链接,这也很有效。

不太好用的是,有时(可能是 1/4)当我回到最初的 web 视图时,视图是空白的。

控制器没有被释放,并且在两者之间没有收到内存警告。我完全感到困惑。

任何人都知道发生了什么,尤其是如何解决它?

以下是与控制器有关的任何方法:

初始控制器:

其他控制器(WebView):

0 投票
5 回答
4646 浏览

iphone - 在基于导航的应用程序中加载 UITableView 的问题

在基于导航的应用程序中,当我尝试加载另一个UITableView使用以下方法实现的视图时initWithNibName

单击UITableView单元格后,我得到:

2009-06-13 11:44:41.089 Bloop[75227:20b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0xd446f0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key tableView.' 2009-06-13 11:44:41.092 Bloop[75227:20b] Stack: (
807902715, 2429103675, 808061681, 810717848, 810716389, 816538544, 807805711, 816533170, 816541363, 815230552, 815224116, 815223834, 815217291, 815258907, 815254969, 815262662, 815243017, 815265053, 815242666, 11044, 815018240, 815005661, 810768858, 807687328, 807683624, 839142449, 839142646, 814752238, 9088, 8942 )

但是当我UITableView在 InterfaceBuilder 中断开连接时,加载视图时没有任何问题(除非无法将数据推送到其中)。

UITableView 实现是正确的——我在一个新的 XCode 项目中尝试过,它工作得很好。

0 投票
3 回答
5856 浏览

iphone - 在 UITabBarController 和 UINavigationController 中自动旋转视图

我的主视图控制器是 a UITabBarController,其中 4UINavigationControllers作为标签栏项目。每个导航栏都是几个不同的视图,它们被推送到它的堆栈上。

我有一个想要自动旋转的视图,但我无法willAnimateFirstHalfOfRotationToInterfaceOrientation在该视图控制器中被调用。

我已经尝试将我的UITabBarControllerand子类化UINaviationControllers并添加一个覆盖,shouldAutorotateToInterfaceOrientation如下所示:

即使在那之后,我也无法旋转视图。我想也许最上面的UIViewController(包括标签和导航)必须能够旋转。甚至是链条上的每个视图。我已经尝试覆盖shouldAutorotateToInterfaceOrientation每个控制器,但仍然无法旋转视图。

有人完成了这项工作或有任何建议吗?

提前致谢!

0 投票
0 回答
1349 浏览

iphone - 在 iPhone 上使用导航控制器旋转视图

我的应用程序有一个包含导航控制器的选项卡栏。

当我旋转到横向时,我通过将横向视图推送到导航控制器堆栈来切换到不同的视图,如下所示:

}

这很好用,但是当我旋转回纵向时,视图会正确显示,然后根据我猜测的导航栏的高度“跳跃”。然后视图的顶部隐藏在导航栏后面。

如果我以通常的方式将另一个控制器推到顶部,然后弹回它正确显示的纵向视图 - 这仅在从横向旋转回来时发生。

此外,它在模拟器中运行良好,但在 iPhone 上却不行。我正在为 2.0 构建,但对于以后的版本似乎也是一样的。

有任何想法吗?

干杯灰