所以我有一个根视图控制器,当用户按下它时会有一个按钮呈现另一个视图控制器.这个第二个控制器有一个关闭选项,它只返回到根视图控制器,当用户触摸它时,它会关闭当前视图控制器,因此它会返回到根视图控制器一秒钟并呈现另一个控制器.去我使用的第一个控制器:
let vc = FirstController()
self.present(vc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
当在另一个视图控制器中时,我选择只关闭的按钮我这样做.
self.dismiss(animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
因此,对于需要解雇并呈现另一个的第二个控制器,我尝试了以下内容:
self.dismiss(animated: true, completion: {
let vc = SecondController()
self.present(vc, animated: true, completion: nil)
})
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
Warning: Attempt to present <UINavigationController: 0xa40c790> on <IIViewDeckController: 0xa843000> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud) 所以当我在 mac osx 终端中使用 Vim 时,我不小心输入了命令 cmd+k 来清除我的终端,因为我已经习惯了这个动作,这让我不得不退出 vim 并再次进入。我想知道是否有办法禁用它。
例如,这是我编辑我的 .vimrc
然后我输入命令,我的终端看起来像这样:
仅使用 Vim 时有没有办法禁用此命令?在 Vim 之外使用终端时,我想继续使用它。谢谢
所以我想用swift和xcode制作这样的东西:
从阵列中获取每个点的位置.我想到的是创建一个UILabel并创建一个遍历数组的for循环,并在每次迭代中添加到标签\ u {2022} +内容.我知道\ u {2022}是unicode中的点,问题是我需要一种方法将列表分成两列,如图所示,并使点点颜色为黄色.如果我按照上面描述的方式以编程方式添加点,则无法完成,因为默认颜色为黑色.由于点的数量与数组内容不同,例如,如果数组的大小为3,那么只有3个点在左边显示2,而在右边一个我需要一种方法来满足这个要求,我想到的另一种方法是有两个表视图,占用屏幕的一半,并根据数组将这些元素添加到每个表视图.什么应该是这里的最佳实践,或者有一种方法可以在故事板中以依赖于数组的形式进行此操作.
在我的一门计算机科学课程中,他们提到上下文无关语法和上下文相关语法之间的区别在于,在 CSG 中,产生式规则的左侧必须小于或等于右侧。
因此,他们给出的一个例子是上下文相关语法不能有空字符串,因为这样就无法满足第一个规则。
但是,我知道常规语法包含在上下文无关中,上下文无关包含在上下文相关中,上下文相关包含在递归可枚举语法中。
因此,例如,如果语法是递归可枚举的,那么它也是上下文相关、上下文无关和常规类型。
问题是,如果发生这种情况,那么如果我有一个包含空字符串的上下文无关语法,那么它就不能满足算作上下文相关的规则,但是就会出现矛盾,因为每个上下文相关是上下文无关的。
grammar context-free-grammar computation-theory context-sensitive-grammar
目前我有一个看起来像这样的视图。
struct StatsView: View {
var body: some View {
ScrollView {
Text("Test1")
Text("Test2")
Text("Test3")
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会在滚动视图中呈现一个包含 3 个文本的视图,每当我在屏幕中拖动这些文本中的任何一个时,视图都会移动导致其可滚动,即使这 3 个文本适合屏幕并且有剩余空间。我想要实现的是仅在其内容超过屏幕高度大小时才使 ScrollView 可滚动,否则,我希望视图是静态的并且不移动。我尝试使用 GeometryReader 并将滚动视图框架设置为屏幕宽度和高度,内容也相同,但我继续具有相同的行为,我也尝试设置 minHeight、maxHeight 没有任何运气。
我怎样才能做到这一点?
我想要获得当年的拉斯日,我需要随着时间的推移而改变,所以如果我在2018年使用这个功能,我会得到2018年12月31日的最后一天,但如果我现在使用这个功能它应该给我12月31日2017年.我知道我可以通过使用获得当前日期
var current = Date()
Run Code Online (Sandbox Code Playgroud)
而且我知道我可以在一年后的同一天得到例如应该是近似的
var dayComponents = DateComponents()
dayComponents.day = 365
let calendar = Calendar(identifier: .gregorian)
if let lastDate = calendar.date(byAdding: dayComponents, to: Date()) {
return lastDate
} else {
return Date()
}
Run Code Online (Sandbox Code Playgroud)
问题是我需要从现在到年底,我该如何实现这一目标?
所以我写了这个C代码但是找不到为什么编译器没有得到else if语句的错误.
#include<stdio.h>
#define IN 1
#define OUT 0;
main() {
int c, nl, nw, nc, state;
c = nl = nw = nc = 0;
state = OUT;
while((c = getchar()) != EOF) {
++nc;
if(c == '\n')
++nl;
if(c == '\n' || c == '\t' || c == ' ')
state = OUT;
else if(state == OUT) {
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
getchar();
}
Run Code Online (Sandbox Code Playgroud)
我收到一条错误,上面写着''else'没有先前的'if'"