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

iphone - 可以切换由 UINavigationController 管理的视图控制器吗?

我正在打破 UINavigationController 的正常范式,或者至少我正在尝试这样做。

我们知道导航控制器通过堆栈管理导航。如果我使用根控制器 A 进行初始化,导航到 B,然后导航到 C,堆栈将看起来像 - C/B/A。

不过,我想做的是在视图 C 上有一个按钮,该按钮将显示另一个视图,比如 X,但仍将导航控制器的导航栏保持在原位。本质上,在堆栈上切换“C”和“X”。我试图通过弹出 C 并立即按下 X 来实现这一点,如下所示,但它不起作用。我在这里走错路了吗?

0 投票
1 回答
4085 浏览

iphone - iPhone SDK - navController pushViewController - 没有响应

我有一个带有两个按钮的navigationController 视图,START(本质上是一个登录按钮)和SETTINGS。当我单击设置时,设置视图出现并按计划关闭。我可以单击设置,然后多次单击返回而不会崩溃。好的。

现在,当用户单击 START 时,我调用 SHOWLOGOFFBUTTONS 方法来更改出现在视图顶部的 navController 中的按钮。导航栏现在应该(并且确实)只有一个注销按钮。单击该按钮时,我调用 SHOWLOGINBUTTONS 以便用户拥有与以前相同的登录按钮,因此他们可以再次访问 SETTINGS 和 START(登录)。

问题是,一旦我将“按钮切换”从登录按钮切换到注销按钮再回到登录按钮,设置按钮就会停止工作。SHOWSETTINGS 方法触发并运行 - 没有发生错误 - 但视图没有出现。

任何帮助将不胜感激!!

0 投票
3 回答
762 浏览

iphone - 导航控制器第二次崩溃

我在我的应用程序中使用了一个导航控制器。我有一个主视图(带有主视图控制器)和几个选项视图。当单击主视图工具栏上的按钮时,导航控制器会查看选项视图。

一切都第一次按预期工作。当我从导航控制器返回主视图并再次尝试转到选项视图(即导航控制器)时,我的应用程序崩溃了。

以下是我的代码,

处理导航控制器的正确机制是什么?我需要释放/释放导航控制器或选项视图吗?

示例代码将有更好的帮助。

0 投票
2 回答
21145 浏览

iphone - 从 UIViewController 加载 UINavigationController 作为子视图

我是 iPhone 开发的新手。我想构建一个应用程序,它首先有一个 UIViewController,它会有一个按钮。现在点击按钮,它会加载一个 UINavigation 控制器。这是我的接近方式:

  1. 我创建了一个 UIViewController 类,在那里我拿了一个

    用于按下按钮。

  2. 然后我创建了一个 UIView xib 文件。我在 IB 中完成了所需的步骤。

  3. 然后在 AppDelegate 中,我将 ViewController 的实例添加为窗口的子视图。

到此为止还可以。

接下来,如何在按下按钮时加载导航控制器?

我知道如何从基于窗口的应用程序构建一个 navigationController 项目,但是我很难将 NavigationController 作为 UIView 的子视图。

非常感谢您的帮助。

0 投票
5 回答
7593 浏览

iphone - 为什么popViewController每隔一段时间才工作一次

我完全被难住了,情况如下:

我的应用程序使用核心位置框架来获取用户的当前位置,然后在TrailBehind上 ping 我的服务器以查找附近有趣的地方并将它们显示为列表。没问题。

为了节省电池,我在从服务器获取数据后关闭了 GPS 服务。如果用户在使用应用程序时四处走动并想要一个新列表,他单击导航控制器上的“刷新”并再次激活 CLLocation 服务,从服务器检索一批新数据并重绘表格。

当应用程序从我的服务器获取数据时,我加载了一个带有旋转地球的加载屏幕,上面写着“正在加载,请稍候”,我隐藏了导航栏,这样他们就不会点击“返回”。

因此,从服务器获取的初始数据完美无缺。

我第一次点击刷新所有代码执行以获取新位置,再次 ping 服务器以获取新的数据列表并更新单元格。但是,它不会按应有的方式加载表格视图,而是恢复表格视图的导航控制器栏,但仍会在主窗口中显示我的加载视图。这仅在设备上是正确的,在模拟器中一切正常。

我第二次点击刷新功能正常工作。

我第三次刷新它失败如上。

我第四次刷新它正常工作。

我第五次刷新它失败如上。

等等,偶数刷新成功,奇数刷新失败。我逐行遍历了所有代码,一切似乎都在正常执行。我实际上继续跳过核心指令,在大量单击“跳过”之后,我发现表格视图确实在 CFRunLoopRunSpecific 中的某个时间点显示在屏幕上,但然后我单击“继续”并且我的加载视图接管了屏幕。

我完全感到困惑。请帮忙!!非常感谢您的洞察力。

奇怪行为的视频:

相关代码:

RootViewControllerMethods(这是这个 TableView 项目的基础视图)

CLController 方法:基本上只是将所有数据直接发送回 RootViewController

0 投票
14 回答
211098 浏览

ios - iPhone仅在第一页隐藏导航栏

我有下面的代码隐藏和显示导航栏。它在第一个视图加载时隐藏,然后在调用“孩子”时隐藏。麻烦的是,当他们返回根视图时,我找不到触发它再次隐藏的事件/动作......

我在根页面上有一个手动执行操作的“测试”按钮,但它并不漂亮,我希望它是自动的。

0 投票
5 回答
6747 浏览

iphone - 当我的 UITableView 还没有数据时,如何显示占位符图像?

我有一个应用程序,在加载时会显示一个 UITableView,其中包含用户的数据。

但是,当用户第一次加载应用程序时(在他们创建任何数据之前),我想显示背景图像而不是空表(带有指向“添加记录”导航栏按钮的箭头) . 一旦用户添加了他们的第一条记录,就会显示 tableview。我已经看到很多应用程序都这样做了——我目前能想到的唯一例子是 Cha-Ching,在你设置任何预算/等之前。不过,我一生都无法弄清楚如何做到这一点。

我最初在主窗口的 xib 中添加了一个 navigationcontroller,它的 rootViewController 是一个自定义的 viewcontroller/xib。这个 rootViewController 包含背景图像,上面有一个隐藏的 tableview,以及一个管理 tableview 的自定义 tableviewcontroller。这似乎工作得很好,如果有数据,它将加载并显示在表格中。但是,如果我将数据滚动到屏幕外,应用程序会崩溃,并出现以下错误:

我不知道 UITextEffectsWindow 是什么,也不知道它为什么要管理我的 tableview。我认为在我的视图层次结构中可能会错误地连接某些东西......

如果有更简单/更直接的方法可以做到这一点,如果有人能解释一下,我将不胜感激。你会怎么做?

提前致谢。

0 投票
2 回答
6868 浏览

iphone - pushViewController 调试

我正在尝试(从我在 heirachy 中的第三个孩子)使用以下内容加载根视图。这不起作用,运行以​​下代码时出现以下错误。

代码:

这个完全相同的代码适用于其他视图,知道如何调试它。

0 投票
1 回答
1568 浏览

iphone - 帮助新表格项的模式文本输入

首先让我先说我对 iPhone 很陌生,所以我为我的无知道歉。

我有一个要添加新项目的 UITableView。当按下添加按钮时,我想要一个模式屏幕向上滑动,用户输入新项目的文本。

我一直在阅读 Apple 的Table View Programming Guide for iPhone,他们有一个示例可以满足我的要求:

}

但是他们没有在任何地方解释 itemInputController 是什么。据我所知,它应该给我一个带有单个文本字段的模式视图,以及一个带有取消和保存的导航栏。我应该在 Interface Builder 中自己创建这个视图吗?还是我需要以某种方式导入的标准东西?谁能帮我破译这个,或者告诉我另一种方法来让它工作?

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 如何要求您建立理想层次结构的看法。

任何帮助将不胜感激。