我读了很多文章来理解为什么有必要使用它@selector()来引用一个方法,但我不认为我很满意.例如,当我们为按钮指定动作时,我们必须写:
[btn addTarget:self action:@selector(myMethod)];
Run Code Online (Sandbox Code Playgroud)
为什么不简单:
[btn addTarget:self action:myMethod];
Run Code Online (Sandbox Code Playgroud)
请解释需要和理由,没有它会发生什么.
我已创建了4个白色和黄色的子视图,您可以在下面分享的参考图像中看到.
我已经以编程方式将Tabbar的位置从下到下改为导航栏,如下图所示(当它在模拟器中运行时).
现在因为我对图像中的黄色视图有限制,如下所示
它出现在导航栏的下方,但我希望它显示在Tabbar下方.
由于Tabbar以编程方式获得其位置,其他视图(包括黄色视图)正从故事板中获取其位置.故事板UIelements在来自该程序的任何其他UIelement之前得到解决,或者至少从程序上获得它们的位置.
什么是达到我想要的最佳方式.
我还想在tabbar和屏幕底部之间的空格中放置所有5个子视图.我想计算该空间的1/5并将此高度分配给每个子视图.我稍后会减少几个像素来分隔它们.
我的屏幕流程如下
登录 - >注册 - > CarDetails
以上所有3个屏幕都在导航控制器中,但不允许用户从汽车详细信息返回到注册.实现它,我
override func viewWillAppear(animated: Bool)
{
self.navigationItem.setHidesBackButton(true, animated:true);
}
Run Code Online (Sandbox Code Playgroud)
在CarDetails视图控制器中.所以它隐藏了后退按钮,如果控制器在导航控制器中,它会自动生成.
到目前为止一切都很好.
在主屏幕上提供所有详细用户登陆后,我已滑出菜单.从菜单用户也可以转到CarDetail屏幕(更新).那个时候而不是backButton我需要滑出菜单按钮作为左栏按钮.所以我用故事板创建了它.
问题是它也会在注册视图后显示.我需要在Car-Details View中为它设置条件显示/隐藏功能.
我也跟它一样,如下所示
override func viewDidLoad()
{
super.viewDidLoad()
if menuButtonVisibility
{
if self.revealViewController() != nil
{
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
else
{
}
menuButtonVisibility=true
}
Run Code Online (Sandbox Code Playgroud)
我只需要将行放入else块.
import UIKit
class ViewController: UIViewController
{
var icnNum : Int64 = 0
let stopHandler =
{
(action:UIAlertAction!) -> Void in
let num = icnNum
}
func showAlert( userStatus: String )
{
let alert = UIAlertController(title: "", message: "", preferredStyle: .alert)
alert.title = "What you want to do?"
alert.addAction(UIAlertAction(title: "Stop", style: .default, handler: stopHandler))
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何icnNum从处理程序访问它.我得到了以下错误.我知道我无法直接访问该变量但是方式是什么.
我知道一个非常基本的问题,但确实很难做到。请帮我。
我有一个具有NSDate数据类型属性的领域对象。但是如何在该列中插入日期。
class Log : Object
{
dynamic var id : Int = 0
dynamic var icn : Int64 = 0
dynamic var status : String = ""
dynamic var date : String = ""
dynamic var timeIn = NSData()
dynamic var timeOut = NSDate()
dynamic var pauseAt = NSDate()
dynamic var breakTime : Int = 0
dynamic var spentMinutes : Int = 0
dynamic var lati : Double = 0.0
dynamic var longi : Double = 0.0 …Run Code Online (Sandbox Code Playgroud)