在iOS 13之前,提供了用于覆盖整个屏幕的视图控制器。并且,在关闭后,将viewDidAppear执行父视图控制器功能。
现在,iOS 13默认将表单显示为视图控制器,这意味着卡将部分覆盖基础视图控制器,这意味着viewDidAppear不会被调用,因为父视图控制器从未真正消失过。
有没有一种方法可以检测到所显示的视图控制器工作表已被解雇?我可以在父视图控制器中重写某些其他功能,而不是使用某种委托?
我是iOS开发的新手.我试图隐藏状态栏UIImagePickerController.每当我点击"拍照"时,都会出现状态栏.它没有隐藏.我希望状态栏只能隐藏在UIImagePickerController.
这是我的代码,
- (IBAction)takePhoto:(UIButton *)sender
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:NULL];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[self statusBar:YES];
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imageView.image = chosenImage;
[picker dismissViewControllerAnimated:YES completion:NULL];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES completion:NULL];
}
-(void)statusBar:(BOOL)status
{
[[UIApplication sharedApplication] setStatusBarHidden:status];
}
Run Code Online (Sandbox Code Playgroud)
如何隐藏状态栏UIImagePickerController?
我正在使用UIPrintInteractionController从rect中呈现它.
UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController];
// than set printing settings
...
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
[controller presentFromRect:rect inView:view animated:YES completionHandler:completionHandler];
Run Code Online (Sandbox Code Playgroud)
比我设置页数(> 1)并选择一台打印机.在设备旋转之前我打电话
[controller dismissAnimated:animated];
根据Xcode文档: You should dismiss the printing options when they are presented in a sheet or animated from a rectangle and the user changes the orientation of the device.
当我UIPrintInteractionController在旋转后出现时,打印份数被设置回1(如在初始视图中),而打印机保持选中状态.UIPrintInfo的Ivar _copies是私有的,所以我无法在旋转期间获取它并存储.
如何在旋转后恢复打印页数?
以下是Json输出的代码:
let params : [[String : AnyObject]] = [["name" : "action", "value" : "pay" ],["name" : "cartJsonData" , "value" : ["total": 1,"rows":[["quantity": “1” ,"title":"Donation for SMSF India - General Fund","price":"1","itemId":"DN001","cost": “1”,”currency":"INR"]]]], ["name" : "center", "value" : "Chennai"], ["name" : "flatNumber", "value" : "503"], ["name" : "panNumber", "value" : ""], ["name" : "payWith"], ["name" : "reminderFrequency","value" : "Monthly"], ["name" : "shipToAddr1"], ["name" : "shipToAddr2"], ["name" : "shipToCity"], ["name" : "shipToCountryName" , "value" : "India"], ["name" : "shipToEmail", "value" : “01034_186893@gmail.com"], ["name" …Run Code Online (Sandbox Code Playgroud) 我在一个项目中注意到,由于某种原因,右侧栏按钮项目上的弹出框的位置似乎偏向右侧.我尝试使用UIButton作为自定义视图,然后从该按钮呈现弹出窗口,但是如果我实际上为它提供了'居中'值,则popover似乎忽略了showFromRect.

这背后的代码非常简单:
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"share"] style:UIBarButtonItemStylePlain target:self action:@selector(shareTap:)];
self.navigationItem.rightBarButtonItem = button;
}
- (void)shareTap:(UIBarButtonItem *)button {
self.popover = [[UIPopoverController alloc] initWithContentViewController:[[UIViewController alloc] init]];
[self.popover presentPopoverFromBarButtonItem:button permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我切换到使用内部按钮,如上所述,我看到类似的行为(注意颜色变化,因此图像显示).

这个代码仍然相当简单:
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *innerButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 22, 22)];
[innerButton setImage:[UIImage imageNamed:@"share"] forState:UIControlStateNormal];
[innerButton addTarget:self action:@selector(shareTap:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:innerButton];;
}
- (void)shareTap:(UIButton *)button {
self.popover = [[UIPopoverController alloc] initWithContentViewController:[[UIViewController alloc] init]];
// CGRect …Run Code Online (Sandbox Code Playgroud) 我已经查看了Stackoverflow但我无法得到答案.我想创建停止在另一个ViewController中播放声音的函数.但是当我点击停止按钮时,它会破解并显示"EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)".这是我的代码.
第一个ViewController
import UIKit
import AVFoundation
class FirstVC: UIViewController {
var metronome: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
do {
let resourcePath1 = Bundle.main.path(forResource: "music", ofType: "mp3")
let url = NSURL(fileURLWithPath: resourcePath1!)
try metronome = AVAudioPlayer(contentsOf: url as URL)
metronome.prepareToPlay()
metronome.play()
} catch let err as NSError {
print(err.debugDescription)
}
}
Run Code Online (Sandbox Code Playgroud)
另一个Viewcontroller是
import UIKit
class SecondVC: UIViewController {
var metronomePlay = FirstVC()
@IBAction func stopBtnPressed(_ sender: Any) {
metronomePlay.metronome.stop() //"EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)"
}
}
Run Code Online (Sandbox Code Playgroud) 我想在Sprite Kit中创建自己的进度条.
我想我需要图像 - 一个完全空的进度条和填充的进度条.
我有那些图像,我把它们放在空的一个上面,它们是常规的,SKSPriteNodes现在我无法弄清楚如何在我需要的地方剪切我填充的图像?
如何在特定点剪切SKSpriteNode图像?也许质地?
我正在以编程方式创建视图,并添加一个函数,以便操作响应UIControlEvents.TouchUpInside事件:
button.addTarget(self, action: action, forControlEvents:
UIControlEvents.TouchUpInside)
Run Code Online (Sandbox Code Playgroud)
因此,通过进入文档,我已将此操作添加为选择器:
#selector(ViewController.onRegularClick)
Run Code Online (Sandbox Code Playgroud)
然后XCode抱怨:
#selector的参数是指未向Objective-C公开的方法
所以我必须设置处理函数:
@objc func onRegularClick(sender: UIButton)
Run Code Online (Sandbox Code Playgroud)
有人可以通过引导我阅读文档,或者甚至给出简短的解释,将这个菜鸟放在正确的方向:
谢谢!
我想将两个视图放入UIStackView.我希望顶部项目始终是空间的30%,无论它出现什么设备(或方向).因此,我希望底层视图为70%.如何告诉UIStackView我想使用百分比?
在 iOS13 中,我无法再更改状态栏的背景颜色,因为无法再使用“键值”访问状态栏。有没有人弄清楚这是怎么可能的,或者是否知道在 iOS13 的最终版本中是可能的?
我遇到了不同的建议,比如使用 UIApplications StatusBarView(在 xcode 11、beta 7 中不再可用)或使用 statusbarmanager。两者都不允许访问状态栏。
let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to: #selector(setter: UIView.backgroundColor)) {
statusBar.backgroundColor = <Some Color>
}
Run Code Online (Sandbox Code Playgroud)
我希望状态栏能够获得我需要的背景颜色。
ios ×10
swift ×5
ios13 ×2
objective-c ×2
statusbar ×2
avplayer ×1
ios7 ×1
ipad ×1
iphone ×1
json ×1
progress-bar ×1
selector ×1
sprite-kit ×1
uikit ×1
uistackview ×1