小编Ric*_*ard的帖子

iOS:如何在设备旋转后运行功能(Swift)

我有一个不使用自动布局的UIView,并且根据主视图中X和Y坐标的百分比显示一些组件.

以前我会运行一个函数来更新他们在didRotateFromInterfaceOrientation中的位置,但是我发现这在iOS8中已被弃用了.

我看了一下viewWillTransitionToSize,但它给出了奇怪的结果,并且似乎没有viewDidtransitionToSize函数.

有没有一种简单的方法(在Swift中)在设备旋转后运行一个函数?

rotation ios swift

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

识别点击导航栏标题

可能有人请帮助我认识一个水龙头,当用户点击该标题导航栏

我想识别这个tap,然后动画tableHeaderView出现.可能会向下滑动TableView.

这个想法是用户可以选择一个快速选项(来自tableViewHeader)来重新填充TableView.

但是我无法识别任何水龙头.

我正在使用Swift.

谢谢.

uinavigationcontroller ios uitapgesturerecognizer swift

39
推荐指数
6
解决办法
2万
查看次数

iOS:如何检查UIViewControllers是否正在卸载?(迅速)

UISplitViewController每次点击Master VC中的一行时都会使用,我可以看到它viewDidLoad()在Detail VC中运行.

这是否意味着我每次点击都会创建一个新的Detail VC实例?

如果是这样,我如何检查Detail VC是否正确卸载并且我不只是创建越来越多的新Detail VC?

我在斯威夫特有点失落.以前我可以在dealloc()中使用NSLog并查看UIViewController正确的卸载.

我在这里Swift有一个deinit函数,但从未调用过:

deinit {
    println("\(__FILE__.lastPathComponent)) : \(__FUNCTION__)")
    NSNotificationCenter.defaultCenter().removeObserver(self)
}
Run Code Online (Sandbox Code Playgroud)

1)我应该把我的观察员移到哪里?

2)当我查看Xcode中的Debug Navigator时,内存使用率一直在上升而且从不下降.

更新:详细信息VC的调用方式如下:

if segue.identifier == "addEvent" {
    if let controller = (segue.destinationViewController as UINavigationController).topViewController as? ManageViewController {
        controller.manageEvent = nil
        controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
        controller.navigationItem.leftItemsSupplementBackButton = true
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有做过与我见过的很多例子不同的事情,但我担心deinit没有被召唤

更新:现在deinit正在工作 - 问题是委托停止被调用(见下面的答案)

我原来的非工作代码是:

protocol ManageViewDelegate {
    func pressedButton(sender: AnyObject)
}

class ManageView: UIView {
    var delegate: ManageViewDelegate? = nil
    ...
} …
Run Code Online (Sandbox Code Playgroud)

uisplitviewcontroller ios swift

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