小编Guj*_*min的帖子

UIActivity activityViewController在iPad上以模态方式呈现,而不是在popover中呈现

在iOS 6中使用客户UIActivity子类时,可以指定从初始UIActionViewController视图中选择操作时将显示的自定义视图控制器.您可以通过从UIActivity子类的activityViewController方法返回对自定义视图控制器的引用来完成此操作.

根据UIActivity类参考:

activityViewController

此方法的默认实现返回nil.使用视图控制器提供附加UI的子类可以重写此方法以返回该视图控制器.如果此方法返回有效对象,系统将为您显示返回的视图控制器,而不是调用该performActivity方法.在iPad上,您的视图控制器显示在弹出窗口内.在iPhone和iPod touch上,视图控制器以模态呈现.

您的自定义视图控制器应提供自定义UI的视图,并应处理这些视图中的任何用户交互.完成活动后,请勿自行关闭视图控制器.相反,调用activityDidFinish:方法并让系统为您解雇它.

请注意第一段末尾的位:在iPad上,视图控制器显示在弹出框内.在iPhone和iPod touch上,视图控制器以模态呈现.

但是,在iPad上activityViewController,无论我如何呈现UIActivityViewController(无论是模态还是通过弹出窗口),返回的视图控制器始终以模态方式显示.当通过弹出窗口呈现时,它会导致崩溃,因为它不认为它被解雇了.

我究竟做错了什么?这是iOS 6中的错误吗?


更新:这是一个简单的Xcode项目,用于说明问题.随意克隆它并玩游戏,看看你是否能看到我们出错的地方:github.com/simonwhitaker/GSActivityDemo

sdk popover ipad ios uiactivity

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

如何重置XCTestCase的UserDefaults?

我试图做的很好,为类编写单元测试,但是我有一些类处理首选项并检查首次运行。我编写的测试函数在第一次运行时可以正常工作,但是由于首选项已经具有值,因此后续测试失败。设置对象nil的结果Optional<Any>值不等于nil当牵强UserDefaults.standard.object(forKey:)

我也曾尝试UserDefaults.standard.removeObject(forKey:)UserDefaults.standard.synchronize()UserDefaults.resetStandardUserDefaults()。似乎没有任何作用,Bundle.main.bundleIdentifier价值就是nil我不能使用UserDefaults.standard.removePersistentDomain(forName:)

我已经发现了首被保存在:/Users/<name>/Library/Developer/CoreSimulator/Devices/<UUID>/data/Library/Preferences/xctest.plist我已经使用字符串试图"xctest"removePersistentDomain和太不起作用。

可以将该值设置为其他值和核对,但我真的很讨厌的垃圾我的代码来测试永远只存在于XCTest的情况(我已经有一个专用于因为这样做复位功能UserDefaults中(XCTest用例UserDefaults与代码中的用例不同!),那么究竟如何在UserDefaultsXCTestCase中重置标准?

xcode nsuserdefaults ios xctest swift3

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

运行 XCTests 时出现“‘MYFUNCTION()’的使用不明确”错误

尝试运行 XCTests 时,我收到多个函数的错误。

例如,我有一个简单的数组扩展来提取唯一的数组:

public extension CollectionType where Generator.Element: Hashable {
    /// Returns the collection with duplicate values in `self` removed.
    var unique: [Generator.Element] {
        get {
            var seen: [Generator.Element:Bool] = [:]
            return self.filter { (element) -> Bool in
                return seen.updateValue(true, forKey: element) == nil
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但在测试中,当我尝试使用它时出现错误:

Ambiguous use of 'unique'
Run Code Online (Sandbox Code Playgroud)

有什么想法如何修复它吗?

arrays xctest swift

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

为什么我不能在viewWillAppear中以编程方式移动UIViews?我什么时候应该设置定位?

我有一些不正确的观点.在我的项目中,我将定位链接到滑块以尝试确保它正在发生,并且当我拖动滑块时它会在视觉上来回捕捉.我已经剥离都记录下来,并提出了测试项目,试图弄清楚这一点,虽然未卡来回,它不会出现在工作的时候viewWillAppear中被调用,通过拖动滑块后只做时.截图和项目附件.

初步定位反映了IB中的位置

我希望在开始时以编程方式设置定位,显示拖动滑块时的位置

示例代码:http://www.hyperfileshare.com/d/b7e4b088

positioning center uiview ios

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

标签 统计

ios ×3

xctest ×2

arrays ×1

center ×1

ipad ×1

nsuserdefaults ×1

popover ×1

positioning ×1

sdk ×1

swift ×1

swift3 ×1

uiactivity ×1

uiview ×1

xcode ×1