在 Appdelegate.h 中
我在 Appdelegate.h
和 Appdelegate.m
文件中导入了 playerviewcontroller
。
@class PlayerViewController;
@property(nonatomic)float volumeDelegate;
在 Appdelegate.m 中
@synthesize volumeDelegate;
- (void)volumeChanged:(NSNotification *)notification
{
volumeDelegate =1.0
PlayerViewController *volumeObject=[[PlayerViewController alloc]init];
[volumeObject setVolumeForAVAudioPlayer];
}
在Playerviewcontroller.h中
-(void)setVolumeForAVAudioPlayer;
在Playerviewcontroller.m中
@interface PlayerViewController ()
{
AppDelegate *appdelegate;
}
-(void)viewDidLoad
{
appdelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
}
-(void)setVolumeForAVAudioPlayer
{
[appdelegate.sharedplayer setVolume:appdelegate.volumeDelegate];
NSLog(@"System Volume in player view: %f",appdelegate.volumeDelegate);
}
当我运行它时,我得到的 volumeDelegate
值为零,如下所示。
播放器 View 中的系统音量:0.000000000
我在这里犯了什么错误
最佳答案
您可以访问 AppDelegate
对象,如下所示
objective-C
这样定义:
AppDelegate appDelegate;
像这样访问它:
appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
用法:
- (void)setVolumeForAVAudioPlayer
{
[appDelegate.sharedplayer setVolume:appdelegate.volumeDelegate];
NSLog(@"System Volume in player view: %f",appDelegate.volumeDelegate);
}
swift :
这样定义:
let appDelegate = UIApplication.shared.delegate as! AppDelegate
用法:
func setVolumeForAVAudioPlayer()
{
appDelegate.sharedPlayer.setVolume:appDelegate.VolumeDelegate
print("System Volume in player view: \(appDelegate.volumeDelegate)")
}
关于ios - 从 viewcontroller 获取 appdelegate 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18401799/