我需要在变量值改变时执行一个函数.
我有一个包含一个名为的共享变量的单例类labelChange.此变量的值取自另一个名为的类Model.我有两个VC类,其中一个有按钮和标签,第二个只有一个按钮.
当按下第一个VC类中的按钮时,我正在用这个func更新标签:
func updateLabel(){
self.label.text = SharingManager.sharedInstance.labelChange
}
Run Code Online (Sandbox Code Playgroud)
但是每当labelChange更改值时我想调用相同的方法.因此,在按钮单击中,我将只更新labelChange值,当这件事发生时,我想用新的值更新标签labelChange.同样在第二个VC中,我可以更新labelChange值,但是当更改此值时,我无法更新标签.
也许属性是解决方案,但任何人都可以告诉我如何这样做.
第二次编辑:
单身人士课程:
class SharingManager {
func updateLabel() {
println(labelChange)
ViewController().label.text = SharingManager.sharedInstance.labelChange
}
var labelChange: String = Model().callElements() {
willSet {
updateLabel()
}
}
static let sharedInstance = SharingManager()
}
Run Code Online (Sandbox Code Playgroud)
第一个VC:
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
@IBAction func Button(sender: UIButton) {
SViewController().updateMessageAndDismiss()
}
}
Run Code Online (Sandbox Code Playgroud)
第二个VC:
func updateMessageAndDismiss() {
SharingManager.sharedInstance.labelChange = modelFromS.callElements()
self.dismissViewControllerAnimated(true, completion: …Run Code Online (Sandbox Code Playgroud) 我想在导航栏中显示标题的位置添加两个标签,但我很难这样做.如果我能用故事板实现这一点,那将是非常好的,但我可以看到我做不到.
正如我所见,我需要使用navigationItem,但我不知道如何做到这一点.如果有人有任何例子,或者如果有人能更具体地解释我怎么做,那将是美好的.
我需要提一下,我对Obj-C完全不熟悉,所以任何帮助都需要在Swift中.
我正在使用SWRevealViewController库在swift中制作一个滑出菜单,但我很难将这个菜单放在右侧.我在图书馆描述中看到了这条评论
// Optional right view controller, can be nil if not used
@property (nonatomic) UIViewController *rightViewController;
Run Code Online (Sandbox Code Playgroud)
但是我对目标C并不熟悉,而且我无法在swift上做到这一点.这是我的默认(左)菜单代码的一部分:
class ViewController: UIViewController, AVAudioPlayerDelegate {
@IBOutlet weak var playlistOutlet: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
playlistOutlet.target = self.revealViewController()
playlistOutlet.action = Selector("revealToggle:")
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
Run Code Online (Sandbox Code Playgroud)
并且从SWRevealViewController库调用revealViewController
我正在尝试创建分享按钮,它将在Facebook上共享链接.问题是我不想在我的应用程序中的共享按钮之前有一个登录按钮,我只需要一个共享按钮.
我认为一种解决方案可能是使用自定义按钮登录和共享按钮,并将这些按钮合并为一个.这样,如果用户在点击分享按钮时没有登录,则会要求他登录.然而,在我试图实现这一目标的过程中,我发现Native Share Dialog是更好的解决方案,因为它根本不需要登录.
但我很难找到任何引用/教程/示例或任何使用swift的Native Share Dialog.Obj-c上有一些例子和东西,但我从未使用过Obj-c,我对此一无所知.
如果有人有任何例子,或者任何人都指出我正确的方向如何在Swift中实现Facebook Native Share Dialog,那我就是在跳跃.
如果不是剂量,任何人都有任何在Swift上使用自定义共享按钮的例子
我用AVFoundation快速创建了一个声音播放器.我正在尝试在播放歌曲结束时开始播放下一首歌曲.我试图实现这个代码
if (audioPlayer.currentTime >= audioPlayer.duration){
var recentSong = songPlaylist[selectedSongNumber + 1]
audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath:
NSBundle.mainBundle().pathForResource(recentSong, ofType: "mp3")!), error: nil)
audioPlayer.play()
}
Run Code Online (Sandbox Code Playgroud)
但我无法实现此代码(我不知道在哪里实现它.)这是我的完整代码
import UIKit
import AVFoundation
import AVKit
public var audioPlayer = AVPlayer()
public var selectedSongNumber = Int()
public var songPlaylist:[String] = ["song1", "song2"]
public var recentSong = "song1"
let playImage = UIImage(named: "Play.png") as UIImage!
let pauseImage = UIImage(named: "Pause.png") as UIImage!
class FirstViewController: UIViewController {
@IBOutlet weak var musicSlider: UISlider!
@IBOutlet weak var PlayPause: UIButton!
var audioPlayer …Run Code Online (Sandbox Code Playgroud) 我正在进行一些练习,但我对此感到困惑:
public static int f (int x, int y) {
int b=y--;
while (b>0) {
if (x%2!=0) {
--x;
y=y-2;
}
else {
x=x/2;
b=b-x-1;
}
}
return x+y;
}
Run Code Online (Sandbox Code Playgroud)
目的是b=y--什么?因此,例如,x=5并且y=5
当我们第一次进去的,而环(while (b>0))将b= 4或5?当我运行时,我的计算机中的代码b是5.而返回的是3.我真的不清楚.对不起,如果我的问题不清楚.
ios ×5
swift ×5
avfoundation ×1
facebook ×1
java ×1
objective-c ×1
operators ×1
playlist ×1
properties ×1
singleton ×1
uilabel ×1