ios - 从 viewcontroller 获取 appdelegate 值

标签 ios objective-c viewcontroller appdelegate

在 Appdelegate.h 中
我在 Appdelegate.hAppdelegate.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/

相关文章:

iphone - 请帮助 : UINavigationController and view controllers memory management

ios - 从 AppStore 中获取应用内购买的顶部

iphone - 如何在 UITableView 上延迟加载文本?

ios - Xcode 未在正确的子目录中搜索 header

ios - 需要有关 ALAssetsLibrary 枚举的帮助

ios - 如何改进我的代码并处理重复的代码?

ios - UICollectionView 更新特定单元格的单元格内容

ios - popViewController 操作后的上边距 UITableViewController

ios - swift 3 : Switch ViewControllers programmatically

ios - NSMutableRLEArray objectAtIndex:effectiveRange::Out of bounds in populating UITableView