小编Sat*_*tre的帖子

从AppDelegate展示UIAlertController

我正试图UIAlertController在我的iOS应用程序中呈现AppDelegate.以下是警报和本方法.

UIAlertController *alert = [UIAlertController alertControllerWithTitle:cTitle message:cMessage preferredStyle:UIAlertControllerStyleAlert];

//Configure alert and actions

[self.window.rootViewController presentViewController:alert animated:TRUE completion:nil];
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试显示警报时,它不会出现,我在控制台中收到以下警报.

Warning: Attempt to present <UIAlertController: 0x145f5d60> on <UINavigationController: 0x146590f0> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)

导致错误的原因是什么?如何解决?

objective-c ios appdelegate uialertcontroller

34
推荐指数
4
解决办法
3万
查看次数

在NSManaged vars上使用属性观察器

我在类中声明了var,如下所示:

@NSManaged var isFavorite: Bool
Run Code Online (Sandbox Code Playgroud)

我想宣布一个属性观察者,非常类似于下面的那个.

 var organization: String {
        didSet { postNotificationWithName( "newData" ) }
    }
Run Code Online (Sandbox Code Playgroud)

但是,Swift告诉我,NSManaged不允许在vars 上拥有财产观察员.有什么方法可以为我的isFavorite变量实现这样的功能或类似的功能吗?

observers nsmanagedobject ios swift

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

如何在UIAlertController的中心显示活动指示器?

我目前UIAlertController正在屏幕上显示.警报视图应仅显示2个元素,标题和UIActivityIndicatorView警报中心.以下是显示警报及其元素的功能.

func displaySignUpPendingAlert() -> UIAlertController {
        //Create the UIAlertController
        let pending = UIAlertController(title: "Creating New User", message: nil, preferredStyle: .Alert)
        //Create the activity indicator to display in it.
        let indicator = UIActivityIndicatorView(frame: CGRectMake(pending.view.frame.width / 2.0, pending.view.frame.height / 2.0, 20.0, 20.0))
        indicator.center = CGPointMake(pending.view.frame.width / 2.0, pending.view.frame.height / 2.0)
        //Add the activity indicator to the alert's view
        pending.view.addSubview(indicator)
        //Start animating
        indicator.startAnimating()

        self.presentViewController(pending, animated: true, completion: nil)
        return pending
    }
Run Code Online (Sandbox Code Playgroud)

但是,活动指示器不会显示在视图的中心,实际上它显示在屏幕的右下方,远离视图.这是什么原因?

编辑:我知道我可以硬编码指标位置的数字,但我希望警报可以在多个屏幕尺寸和方向的多个设备上工作.

uiview uiactivityindicatorview ios swift uialertcontroller

21
推荐指数
5
解决办法
3万
查看次数

获取对当前视图控制器Xcode UI Unit测试的参考

我在Xcode UI Unit测试中观看了WWDC视频,并尝试将其合并到我的应用程序中.

在我的应用程序的特定场景中,当用户点击按钮时,应用程序会运行一些逻辑.基于该逻辑的结果,VC被解雇或停留.我想运行一个UI测试,以确保VC被解散或保持基于已知输入.如何通过XCElementQuery获取对当前显示的视图控制器的引用?

user-interface xcode unit-testing ios

5
推荐指数
0
解决办法
436
查看次数

Swift中UICollectionViewDataSource出错

我正在尝试实现一个Collection视图,该视图作为IBOutlet连接到接口构建器中的集合视图.根据需要,我试图声明我为包含集合视图的控制器创建的UIViewController类文件作为UICollectionViewDataSource.

但是,Xcode一直给我一个错误,即视图控制器不符合UICollectionViewDataSource的协议,尽管它被声明在那里.

我将控制器设置为数据源并委托如下:

ObjectsCollection.delegate = self
ObjectsCollection.dataSource = self
Run Code Online (Sandbox Code Playgroud)

这是错误的屏幕截图:

屏幕截图的错误

错误的原因是什么?我似乎找不到它.

ios uicollectionview swift

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