- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序,其中包含一个设置 View ,该 View 是使用带有原型(prototype)单元格的 UITableView 设置的。填充后,每个单元格都会进入后续设置页面。这些后续设置页面应该允许用户导航回主设置页面(并最终退出设置返回主菜单)。
每个设置页面的底层机制都可以独立正常工作。我遇到的问题是将这些全部绑定(bind)在导航流程中。
最初,我将设置屏幕编码为许多不同的 View Controller ,并从主设置屏幕创建到每个 View Controller 的手动转场(并手动创建回到主设置屏幕的转场)。主设置屏幕本质上是一个带有原型(prototype)单元的可视化自定义 UITableView。这种方法按预期工作,但相当笨拙,需要在每个屏幕上手动编码每个转场。
为了使事情更清晰、更易于管理(代码方面),我尝试使用导航 Controller 来实现相同的效果,并将我的主设置页面嵌入到导航 Controller 中(这可能不是正确的术语,但本质上,主设置页面就是您通过导航 Controller 进入 Storyboard时看到的内容)。从那里,我使用 segues 将主设置页面连接到每个辅助设置页面。
使用导航 Controller 方法,主设置页面可以正确加载并正常工作(即:正确的内容加载、表格滚动、开关工作等),但每当点击单元格时,都会调用segue辅助设置页面,似乎什么也没有发生...但是我可以看到打印行已针对选定的辅助设置页面运行,而主设置页面只是卡住并变得不起作用。
主要设置屏幕的简单演示导致下一个:https://imgur.com/qnzb36j.png
Segue 标识符和详细信息: https://imgur.com/W3Gn7WS.png
以下代码用于主设置屏幕中以启动到计时器屏幕的转场(例如)。计时器屏幕的 Segue 具有标识符“ShowTimerView”。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
print("\(indexPath.row) was selected.")
if indexPath.row == 1 {
// Action when timer button pressed
print("Timer button pressed.")
print("-----Segueing to Timer view.")
self.performSegue(withIdentifier: "ShowTimerView", sender: nil)
}
}
如前所述,点击计时器单元格导航到计时器屏幕会导致主设置屏幕变得无响应,并且计时器屏幕永远不会出现。我可以知道计时器屏幕已加载/运行,作为计时器页面的 ViewController 中的打印行运行并出现在终端中。
我尝试过各种不同的方法来让它发挥作用。我认为我犯了一个愚蠢的错误,因为当我将转场类型从“显示”更改为“模态呈现”时,计时器屏幕会加载并出现......但导航栏不会加载,所以没有办法导航回到主设置屏幕。
仅供引用,当从主菜单导航到主设置屏幕时,我确实得到了以下终端输出...不确定它是否对解决问题有任何帮助:
Settings button pressed.
-----Segueing to Settings view.
2019-01-20 20:54:58.979042+0000 ThirtySeconds[14618:388866] [LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<NSLayoutConstraint:0x600001f68690 UILabel:0x7fb2a1d636b0'Settings'.top >= UILayoutGuide:0x600000560fc0'TitleView(0x7fb2a1c62740)'.top (active)>",
"<NSLayoutConstraint:0x600001f685a0 UILabel:0x7fb2a1d636b0'Settings'.firstBaseline == UILayoutGuide:0x600000560fc0'TitleView(0x7fb2a1c62740)'.top + 28 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x600001f68690 UILabel:0x7fb2a1d636b0'Settings'.top >= UILayoutGuide:0x600000560fc0'TitleView(0x7fb2a1c62740)'.top (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
然后,一旦我按下“计时器”单元格,就会出现以下输出:
Timer button pressed.
-----Segueing to Timer view.
2019-01-20 20:55:38.339771+0000 ThirtySeconds[14618:388866] [Answers] Logging Answers event: <ANSPredefinedEvent: content_view
{
"content_id" = "N/A";
"content_name" = Timer;
"content_type" = "Settings Screen";
}
{
}>
2019-01-20 20:55:38.359086+0000 ThirtySeconds[14618:389499] [Answers] Logging predefined event to Firebase. <select_content
{
"content_type" = "Settings Screen";
"item_id" = "N/A";
"item_name" = Timer;
}>
2019-01-20 20:55:38.365187+0000 ThirtySeconds[14618:388866] [LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<NSLayoutConstraint:0x600001f6ab20 UILabel:0x7fb2a1d73f60'Timer'.top >= UILayoutGuide:0x600000561ce0'TitleView(0x7fb2a1c110a0)'.top (active)>",
"<NSLayoutConstraint:0x600001f6a850 UILabel:0x7fb2a1d73f60'Timer'.firstBaseline == UILayoutGuide:0x600000561ce0'TitleView(0x7fb2a1c110a0)'.top + 28 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x600001f6ab20 UILabel:0x7fb2a1d73f60'Timer'.top >= UILayoutGuide:0x600000561ce0'TitleView(0x7fb2a1c110a0)'.top (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
最佳答案
啊!事实证明,问题是我在子类导航 Controller 中所做的高度修改。删除此修改会导致所有内容按预期运行和行为。
关于ios - NavigationController 中的 View 之间的序列无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54280948/
我在Windows 10中使用一些简单的Powershell代码遇到了这个奇怪的问题,我认为这可能是我做错了,但我不是Powershell的天才。 我有这个: $ix = [System.Net.Dn
var urlsearch = "http://192.168.10.113:8080/collective-intellegence/StoreClicks?userid=" + userId +
我有一个非常奇怪的问题,过去两天一直让我抓狂。 我有一个我试图控制的串行设备(LS 100 光度计)。使用设置了正确参数的终端(白蚁),我可以发送命令(“MES”),然后是定界符(CR LF),然后我
我目前正试图让无需注册的 COM 使用 Excel 作为客户端,使用 .NET dll 作为服务器。目前,我只是试图让概念验证工作,但遇到了麻烦。 显然,当我使用 Excel 时,我不能简单地使用与可
我开发了简单的 REST API - https://github.com/pavelpetrcz/MandaysFigu - 我的问题是在本地主机上,WildFly 16 服务器的应用程序运行正常。
我遇到了奇怪的情况 - 从 Django shell 创建一些 Mongoengine 对象是成功的,但是从 Django View 创建相同的对象看起来成功,但 MongoDB 中没有出现任何数据。
我是 flask 的新手,只编写了一个相当简单的网络应用程序——没有数据库,只是一个航类搜索 API 的前端。一切正常,但为了提高我的技能,我正在尝试使用应用程序工厂和蓝图重构我的代码。让它与 pus
我的谷歌分析 JavaScript 事件在开发者控制台中运行得很好。 但是当从外部 js 文件包含在页面上时,它们根本不起作用。由于某种原因。 例如; 下面的内容将在包含在控制台中时运行。但当包含在单
这是一本名为“Node.js 8 the Right Way”的书中的任务。你可以在下面看到它: 这是我的解决方案: 'use strict'; const zmq = require('zeromq
我正在阅读文本行,并创建其独特单词的列表(在将它们小写之后)。我可以使它与 flatMap 一起工作,但不能使它与 map 的“子”流一起工作。 flatMap 看起来更简洁和“更好”,但为什么 di
我正在编写一些 PowerShell 脚本来进行一些构建自动化。我发现 here echo $? 根据前面的语句返回真或假。我刚刚发现 echo 是 Write-Output 的别名。 写主机 $?
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我将一个工作 View Controller 类从另一个项目复制到一个新项目中。我无法在新项目中加载 View 。在旧项目中我使用了presentModalViewController。在新版本中,我
我对 javascript 很陌生,所以很难看出我哪里出错了。由于某种原因,我的功能无法正常工作。任何帮助,将不胜感激。我尝试在外部 js 文件、头部/主体中使用它们,但似乎没有任何效果。错误要么出在
我正在尝试学习Flutter中的复选框。 问题是,当我想在Scaffold(body :)中使用复选框时,它正在工作。但我想在不同的地方使用它,例如ListView中的项目。 return Cente
我们当前使用的是 sleuth 2.2.3.RELEASE,我们看不到在 http header 中传递的 userId 字段没有传播。下面是我们的代码。 BaggageField REQUEST_I
我有一个组合框,其中包含一个项目,比如“a”。我想调用该组合框的 Action 监听器,仅在手动选择项目“a”完成时才调用。我也尝试过 ItemStateChanged,但它的工作原理与 Action
你能看一下照片吗?现在,一步前我执行了 this.interrupt()。您可以看到 this.isInterrupted() 为 false。我仔细观察——“这个”没有改变。它具有相同的 ID (1
我们当前使用的是 sleuth 2.2.3.RELEASE,我们看不到在 http header 中传递的 userId 字段没有传播。下面是我们的代码。 BaggageField REQUEST_I
我正在尝试在我的网站上设置一个联系表单,当有人点击发送时,就会运行一个作业,并在该作业中向所有管理员用户发送通知。不过,我在失败的工作表中不断收到此错误: Illuminate\Database\El
我是一名优秀的程序员,十分优秀!