问题标签 [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.
iphone - 如何将 appDelegate 中的信息传递到 UINavigationcontroller 中的视图控制器之一
在我正在开发的 iphone 应用程序中,我使用自定义类来管理与主机的网络通信。名为protocolClass 的类是appDelegate 中的ivar 和applicationDidFinishLaunching: 方法中的alloc + init。
现在,每当 protocolClass 从主机接收数据时,它都会在其委托(我将其设置为 appDelegate)中调用 protocolClassDidReceiveData: 方法。然后我需要更新 UINavigatorController 中一个 customViewController 中的数据。
我应该只添加对我需要在 appDelegate 中更新的 customViewController 的引用吗?还是有其他更有效的方法?
如果我要保留对 customViewcontroller 的引用,那么内存使用的后果是什么?
提前致谢。
iphone - ABPeoplePickerNavigationController 被解除后的自定义操作
我正在向用户展示一个 ABPeoplePickerNavigationController 并要求他们选择一个联系人。一旦他们选择了一个用户,我想让他们发送到消息应用程序或电子邮件应用程序,具体取决于他们选择的属性。但是,我不知道如何自定义模式选择器被解除后发生的操作。
那么,我该怎么做呢?谢谢!
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 并释放所有内容吗?
iphone - 如何呈现具有固定 UIToolbar 的模态视图控制器?
我正在尝试设置一个位于固定工具栏下方的模态视图控制器。因此,当模态视图滚动时,工具栏应该保持在顶部。Safari 应用程序会这样做,例如,当点击书签按钮时。工具栏保持不变,按钮改变..
我尝试了一些方法,例如将工具栏推到前面,最终根本不使用 presentModalViewController 方法,而是手动将新视图动画化到子视图中。但这带来了一些其他问题。
iphone - UINavigationBar 标题和右键
我有一个导航控制器,其中有一个视图控制器:
而且我还有另一个导航控制器——NavigationController2。我想从另一个视图控制器 - ViewController2 调用 MyViewController,它被推送到 NavigationController2 中。-NavigationController2 --ViewController2
我通过以下方式进行操作:
这是 MyViewController 的 viewWillAppear 方法(被调用的那个):
当用户开始编辑文本字段时,我正在向导航栏添加一个“完成”按钮:
问题是:如果我从被推入 NavigationController2 的 ViewController2 调用 MyViewController,然后我从它自己的 NavigationController1 调用 MyViewController,则不会添加导航栏的标题和完成按钮。但是,正在调用 MyViewController 的 viewWillAppear 和 textFieldDidBeginEditing 方法。
有什么问题,我该如何解决?
谢谢。
iphone - UINavigationController 和自动旋转
我有一个 UIViewController 可以为其他所有内容返回YES
。使用堆栈顶部的那个视图,我用来推送一个新的. 新控制器返回.shouldAutorotateToInterfaceOrientation:
UIDeviceOrientationPortrait
NO
pushViewController:animated:
UIViewController
YES
shouldAutorotateToInterfaceOrientation:
第一个视图拒绝旋转(如预期的那样)。推送第二个视图后,用户可以旋转设备,并且 UI 将旋转(也如预期的那样)。如果第二个视图处于横向模式并且用户按下后退按钮(调用popViewControllerAnimated:
),则第一个视图将出现旋转(意外!)。
如果用户将设备旋转回纵向,则视图将旋转,然后像以前一样停留在纵向模式。这可行,但在用户旋转回来之前,这对用户来说很难看。所以我正在寻找一种方法让这个视图保持纵向模式。
到目前为止,我发现的唯一解决方法是使用-[UIDevice setOrientation:]
,它会引发警告(orientation
是只读的),但由于它是实际定义的,所以可以工作。这是一个巨大的黑客,我想要一个真正的解决方案。为了寻找真正的解决方案,我将 GDB 附加到照片应用程序 (MobileSlideshow.app) 并发现它也使用-[UIDevice setOrientation:]
. 作为一个内部应用程序,虽然我猜他们有不同的规则。
是否有正确的方法来实现预期的自转行为?
iphone - 导航回视图时 UIWebView 变为空白
我有一个加载 UIWebView 的应用程序。这很好用。用户可以单击 Web 视图中的链接,然后创建一个新的视图控制器/Web 视图来加载链接,这也很有效。
不太好用的是,有时(可能是 1/4)当我回到最初的 web 视图时,视图是空白的。
控制器没有被释放,并且在两者之间没有收到内存警告。我完全感到困惑。
任何人都知道发生了什么,尤其是如何解决它?
以下是与控制器有关的任何方法:
初始控制器:
其他控制器(WebView):
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 项目中尝试过,它工作得很好。
iphone - 在 UITabBarController 和 UINavigationController 中自动旋转视图
我的主视图控制器是 a UITabBarController
,其中 4UINavigationControllers
作为标签栏项目。每个导航栏都是几个不同的视图,它们被推送到它的堆栈上。
我有一个想要自动旋转的视图,但我无法willAnimateFirstHalfOfRotationToInterfaceOrientation
在该视图控制器中被调用。
我已经尝试将我的UITabBarController
and子类化UINaviationControllers
并添加一个覆盖,shouldAutorotateToInterfaceOrientation
如下所示:
即使在那之后,我也无法旋转视图。我想也许最上面的UIViewController
(包括标签和导航)必须能够旋转。甚至是链条上的每个视图。我已经尝试覆盖shouldAutorotateToInterfaceOrientation
每个控制器,但仍然无法旋转视图。
有人完成了这项工作或有任何建议吗?
提前致谢!
iphone - 在 iPhone 上使用导航控制器旋转视图
我的应用程序有一个包含导航控制器的选项卡栏。
当我旋转到横向时,我通过将横向视图推送到导航控制器堆栈来切换到不同的视图,如下所示:
}
这很好用,但是当我旋转回纵向时,视图会正确显示,然后根据我猜测的导航栏的高度“跳跃”。然后视图的顶部隐藏在导航栏后面。
如果我以通常的方式将另一个控制器推到顶部,然后弹回它正确显示的纵向视图 - 这仅在从横向旋转回来时发生。
此外,它在模拟器中运行良好,但在 iPhone 上却不行。我正在为 2.0 构建,但对于以后的版本似乎也是一样的。
有任何想法吗?
干杯灰