2013-07-26 24 views
0

我已經編寫了下面的代碼來在標識符播放和暫停之間切換按鈕。該按鈕在暫停播放時必須是類型播放,並且在播放時必須暫停。UIBarButtonItem不能在Play和暫停之間切換

- (IBAction)playSound:(id)sender { 

    if (isPaused) { 
     playOrPauseButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemPause target:self action:@selector(pausePlaying)]; 
//  playOrPauseButton.style = UIBarButtonSystemItemPause; 
//  [playOrPauseButton setStyle:UIBarButtonSystemItemPause]; 
     isPaused = NO; 
     NSLog(@"Playing"); 
    } 

    else { 

     playOrPauseButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(resumePlaying)]; 
//  playOrPauseButton.style = UIBarButtonSystemItemPlay; 
//  [playOrPauseButton setStyle:UIBarButtonSystemItemPlay]; 
     isPaused = YES; 
     NSLog(@"Paused"); 

    } 

} 

評論性聲明是我從網上獲得的不同選項,我嘗試了一個接一個。三種選擇都沒有在播放和暫停狀態之間切換。我已將按鈕標識符設置爲在故事板中播放。無論我做什麼,按鈕仍然是播放按鈕。我能做些什麼來將按鈕切換爲播放/暫停類型?

回答

2

爲你的方法是這樣剛剛代碼: -

-(IBAction)pausePlaying 
{ 
    NSLog(@"push tap"); 
    if(playing == YES) 
    { 
     playOrPauseButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemPause target:self action:@selector(resumePlaying)]; 
     self.navigationItem.rightBarButtonItem = playOrPauseButton; 
     playing= NO; 
    } 
} 

-(IBAction)resumePlaying 
{ 
    if(playing == NO) 
    { 
     playOrPauseButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(pausePlaying)]; 
     self.navigationItem.rightBarButtonItem = playOrPauseButton; 
     playing= YES; 
    } 

    NSLog(@"resume tap");  
} 


- (void)viewDidLoad 
{ 
    playing=YES; 
    playOrPauseButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(pausePlaying)]; 
    self.navigationItem.rightBarButtonItem = playOrPauseButton; 
    [super ViewDidLoad:animated]; 
} 

工作截圖: -

enter image description here

0

設置工具欄項目的工作原理是這樣

UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
[self.navigationController.toolbar setBarStyle:UIBarStyleBlackOpaque]; 
UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithTitle:@"toolbar title" style:UIBarButtonItemStylePlain target:self  action:@selector(onToolbarTapped:)]; 
NSArray *toolbarItems = [NSArray arrayWithObjects:spaceItem, customItem, spaceItem, nil]; 

[self setToolbarItems:toolbarItems animated:NO]; 

讓barbuttons的陣列設置爲工具欄項目

所以你的情況也設置在工具欄不僅不修改,以使其正常工作

+0

對不起,我沒有得到你。我需要做的是將單個按鈕切換爲播放/暫停標識符,而不是添加兩個不同的按鈕來播放和暫停。 –