小编rav*_*inx的帖子

提出一个控制器解雇它并在Swift中呈现一个不同的控制器

所以我有一个根视图控制器,当用户按下它时会有一个按钮呈现另一个视图控制器.这个第二个控制器有一个关闭选项,它只返回到根视图控制器,当用户触摸它时,它会关闭当前视图控制器,因此它会返回到根视图控制器一秒钟并呈现另一个控制器.去我使用的第一个控制器:

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)

ios presentviewcontroller swift swift3

14
推荐指数
1
解决办法
1万
查看次数

在终端中使用 Vim 时禁用 cmd+k?

所以当我在 mac osx 终端中使用 Vim 时,我不小心输入了命令 cmd+k 来清除我的终端,因为我已经习惯了这个动作,这让我不得不退出 vim 并再次进入。我想知道是否有办法禁用它。

例如,这是我编辑我的 .vimrc

在此处输入图片说明

然后我输入命令,我的终端看起来像这样:

在此处输入图片说明

仅使用 Vim 时有没有办法禁用此命令?在 Vim 之外使用终端时,我想继续使用它。谢谢

macos vim terminal

7
推荐指数
1
解决办法
725
查看次数

如何使用Swift制作子弹列表?

所以我想用swift和xcode制作这样的东西:

在此输入图像描述

从阵列中获取每个点的位置.我想到的是创建一个UILabel并创建一个遍历数组的for循环,并在每次迭代中添加到标签\ u {2022} +内容.我知道\ u {2022}是unicode中的点,问题是我需要一种方法将列表分成两列,如图所示,并使点点颜色为黄色.如果我按照上面描述的方式以编程方式添加点,则无法完成,因为默认颜色为黑色.由于点的数量与数组内容不同,例如,如果数组的大小为3,那么只有3个点在左边显示2,而在右边一个我需要一种方法来满足这个要求,我想到的另一种方法是有两个表视图,占用屏幕的一半,并根据数组将这些元素添加到每个表视图.什么应该是这里的最佳实践,或者有一种方法可以在故事板中以依赖于数组的形式进行此操作.

ios swift swift3

6
推荐指数
3
解决办法
5385
查看次数

上下文相关语法可以有空字符串吗?

在我的一门计算机科学课程中,他们提到上下文无关语法和上下文相关语法之间的区别在于,在 CSG 中,产生式规则的左侧必须小于或等于右侧。

因此,他们给出的一个例子是上下文相关语法不能有空字符串,因为这样就无法满足第一个规则。

但是,我知道常规语法包含在上下文无关中,上下文无关包含在上下文相关中,上下文相关包含在递归可枚举语法中。

因此,例如,如果语法是递归可枚举的,那么它也是上下文相关、上下文无关和常规类型。

问题是,如果发生这种情况,那么如果我有一个包含空字符串的上下文无关语法,那么它就不能满足算作上下文相关的规则,但是就会出现矛盾,因为每个上下文相关是上下文无关的。

grammar context-free-grammar computation-theory context-sensitive-grammar

5
推荐指数
1
解决办法
3736
查看次数

SwiftUI:仅当 ScrollView 超过屏幕高度时才可滚动

目前我有一个看起来像这样的视图。

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 没有任何运气。

我怎样才能做到这一点?

scrollview ios swift swiftui

5
推荐指数
6
解决办法
5130
查看次数

使用Date int swift获取一年中的最后一天?

我想要获得当年的拉斯日,我需要随着时间的推移而改变,所以如果我在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)

问题是我需要从现在到年底,我该如何实现这一目标?

date swift swift3

3
推荐指数
2
解决办法
3602
查看次数

有人可以解释一下为什么这个C代码没有编译我的else if语句?

所以我写了这个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'"

c if-statement

1
推荐指数
1
解决办法
83
查看次数