现在UIButton我的故事板中有一个设置,可以推送到Table View Controller.这是按预期工作的.我想要做的是在UIButton按下时加载一个xml文件并仍然移动到表视图控制器上.
我怎样才能做到这一点?我已经有了XML代码的代码,这是代码将去哪里以及如何为新的ViewController子类添加.h和.m文件的问题UIViewController.如何将这些文件链接到UIButton我在故事板中创建的文件?
标题基本上说明了一切。
我有一个,UITableView并且我希望该项在编辑模式下RightBarButtonItem消失UITableView。不幸的是,到目前为止,我发现的所有答案都建议将按钮设置为nil ...这对我不起作用,因为我不想摆脱按钮及其引用,只需在按钮隐藏时隐藏它即可。UITableView处于编辑模式。
那么,我在弄清楚该怎么做时遇到的麻烦是:
UITableView进入编辑模式RightBarButtonItem(不完全删除)UITableView已离开编辑模式(以便按钮可以重新出现)任何帮助,将不胜感激,谢谢!
我正在开发一个Radio Streaming应用程序,它可以流畅播放.当按下"主页"按钮和"锁定"按钮时,它也会在后台播放.
应用程序嵌入到a中UINavigationController,当我按下UINavigationController中的"后退"按钮时,它停止播放.我的问题是:当按下导航控制器中的"后退"按钮以便继续流式传输时UIViewController,如何让包含它的内容AVPlayer保持活动状态AVPlayer?
我的代码
import UIKit
import AVFoundation
import MediaPlayer
import Foundation
class RadioFunctionViewController: UIViewController {
@IBOutlet var playButton: UIButton!
@IBOutlet var statusLabel: UILabel!
var player:AVPlayer = AVPlayer()
private let ObservatingKeyPath = "currentItem.status"
private let PlayerStatusObservingContext = UnsafeMutablePointer<Int>(bitPattern: 1)
private var playingState:Bool = false
override func viewDidLoad() {
super.viewDidLoad()
setStatus(4)
getAudioData("http://184.107.179.162:7546/;")
playingState = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func …Run Code Online (Sandbox Code Playgroud) 我在iOS应用程序中使用parse.com将数据存储到解析云服务.我遇到了嵌套对象查询的问题.我有以下数据模型:
"游戏"类包含"获胜者"
"获胜者"是一个数组NSDictionary,字典中的每个项目都是1个玩家到N个人的映射
playerPowers值是一个PFObjects数组(当前只有一个名称的权力)key:objectId of a player(PFObject)
对于每个获胜者,我向"赢家"(可能有多个获胜者)添加一个NSDictionary对象,如下所示:
NSDictionary * winnerWithPowers = [NSDictionary dictionaryWithObject:tempPowers
forKey:[aWinnerPFObject objectId]];
[newGame addObject:winnerWithPowers forKey:@"winners"];
Run Code Online (Sandbox Code Playgroud)
对于字典中的每个项目,键是播放器的现有objectId,值PFObjects也是服务器上的(幂)数组.当我查询"获胜者"时,我想要检索所有填充的数据,所有获胜者及其各自的权力PFObjects及其所有数据.当我查询"获胜者"时,每个权力的细节PFObject都是不完整的(键的值:名称为空).以下是查询,然后是打印结果的代码,然后输出包含两个获胜者的字典:
//在viewWillAppear中:
PFQuery * gamesQuery = [PFQuery queryWithClassName:@"Game"];
[gamesQuery orderByDescending:@"createdAt"];
[gamesQuery findObjectsInBackgroundWithBlock:^(NSArray * theGames, NSError * error) {
if (error) {
NSLog(@"ERROR: There was an error with the Query for Games!");
} else {
_gamesPF = [[NSMutableArray alloc] initWithArray:theGames];
[_tableView reloadData];
}
}];
Run Code Online (Sandbox Code Playgroud)
//在tableview中的cellForRowAtIndexPath: …
使用自动布局,我创建UICollectionView并添加了一个UIImageView内部来显示各种类别的图像.但是当我运行应用程序时,虽然单元格在屏幕上占据了适当的区域但是UIImageView包含在内部却显得非常小.有任何建议如何解决这个问题?我正在使用Swift.
使用自动布局的Pin选项,我已固定UIImageView到所有边缘UICollectionViewCell.
我想UIImageView覆盖细胞的所有绿色空间来显示图像.我正在使用以下代码填充UICollectionView
@IBOutlet weak var categoryCollectionView: UICollectionView!
let categoryImages = [UIImage(named: "cake"), UIImage(named: "flowers"), UIImage(named: "chocolate"), UIImage(named: "greetings"), UIImage(named: "combobox"), UIImage(named: "handicraft"), UIImage(named: "mug"), UIImage(named: "soft_toy")]
let categoryNames = ["Cakes", "Flowers", "Chocolates", "Greetings", "Combos", "Handicraft", "Mugs", "Soft Toys"]
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.categoryNames.count;
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = categoryCollectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: …Run Code Online (Sandbox Code Playgroud) 我正在从事录音工作。当应用程序在前台运行时,我必须开始录音并转到后台,当时录音工作正常。
但我的问题是,当我已经在后台时如何开始录音,我的录音功能是这样触发的:
我有一个带有按钮和 iOS 应用程序的蓝牙 LE 设备。这两个设备已配对(蓝牙 LE 设备和运行 iOS 应用程序的 iPhone),iOS 应用程序正在侦听蓝牙 LE 设备上的事件,例如按下按钮等事件。
现在,当用户按下蓝牙 LE 设备上的按钮时,iOS 应用程序会捕获该事件,即使该应用程序位于后台,我也可以运行代码,但无法开始录音。
我已经启用Background Modes:
这是我的录音代码:
func startRecording() {
DispatchQueue.global(qos: .background).asyncAfter(deadline: DispatchTime.now(), qos: .background) {
let audioFilename = self.getDocumentsDirectory().appendingPathComponent("recording.m4a")
print("record Audio \(audioFilename)")
let settings = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 12000,
AVNumberOfChannelsKey: 1,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]
do {
self.audioRecorder = try AVAudioRecorder(url: audioFilename, settings: settings)
self.audioRecorder.delegate = self
self.audioRecorder.record()
} catch {
self.finishRecording(success: false)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我找不到正确的解决方案来做到这一点,请建议我正确的方法来做到这一点,提前致谢。
谢谢你的时间和阅读.我想要做的是弄清楚为什么这NSLog告诉我NSArray无论如何总是空的.我认为问题是我发NSMutableArray错了.您是否可以看看并决定我是否做得对,如果可能的话,给我一个方法将数组传入NSMutableArray?
谢谢!
//Get Defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *favoriteArray = [[defaults objectForKey:@"favorites"] copy];
//Declares Mutable Array
self.favorites = [[NSMutableArray alloc] initWithObjects:favoriteArray, nil];
NSLog(@"array: %@", favorites);
Run Code Online (Sandbox Code Playgroud)
更新:我明白了.事实证明,您必须使用initWithArray声明它,而不是尝试将其添加为对象
解:
- (void)viewDidLoad {
//Get Defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *favoriteArray = [[defaults objectForKey:@"favorites"] copy];
//Declares Mutable Array
self.favorites = [[NSMutableArray alloc] initWithArray:favoriteArray];
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud) 是否有一个刷新控制应用到一种方法UITableView,其是在设置UIViewController?
我发现的解决方案需要子类化UITableViewController,这对我来说很麻烦,因为我需要子类化UIViewController而不是a UITableViewController,我没有看到文档下的任何方法UITableView允许我对它设置刷新控件.
任何帮助将非常感谢!
ios ×7
objective-c ×3
swift ×3
xcode ×3
iphone ×2
audio ×1
avplayer ×1
ios5 ×1
nsdictionary ×1
storyboard ×1
swift2 ×1
uitableview ×1