2012-12-28 17 views
5

Theo các thẻ mặc định được tải trong PKAddPassesViewController. Có cách nào để biết nút nào được nhấn trên màn hình không.Cách kiểm tra xem nút hủy hoặc thêm được nhấn trong PKAddPassesViewController

//this method runs when user either click on the cancel or add button 

-(void)addPassesViewControllerDidFinish: (PKAddPassesViewController*) controller 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

Tôi muốn lấy tiêu đề của nút được nhấn trong PKAddPassesViewController. Tôi đã thử mã dưới đây để truy cập vào tiêu đề nhưng tôi đang nhận được null.

NSLog(@"Title of button %@",controller.navigationController.navigationItem.rightBarButtonItem.title); 

Trả lời

5

Theo như tôi biết không có, nhưng bạn luôn có thể thử và lấy đèo bạn vừa thêm vào với:

- (PKPass *)passWithPassTypeIdentifier:(NSString *)identifierserialNumber:(NSString *)serialNumber; 

này sẽ trở lại đèo nếu nó đã được bổ sung và nil nếu không - điều này có thể giúp suy luận xem có thêm một thẻ mới hay không. Lưu ý rằng cũng như thêm, nút bên phải có thể hiển thị 'Cập nhật' (nếu thẻ đã có mặt nhưng phiên bản của bạn có dữ liệu mới) hoặc bị tắt nếu bạn đang cố gắng thêm lại một thẻ trùng lặp.

+0

xấu hổ trên Apple! –

3

Tôi đã sử dụng một cách tiếp cận khác để giải quyết vấn đề trên. Tôi đang so sánh số không. các thẻ đã có mặt trong sổ tiết kiệm với số lượng vượt qua mới sau khi người dùng đã nhấp vào nút thêm hoặc hủy. Nếu số lượt vượt qua tăng điều đó có nghĩa là mật khẩu đã được thêm vào sổ tiết kiệm nếu không thì không.

- (void) addPassesViewControllerDidFinish: (PKAddPassesViewController *) điều khiển {

PKPassLibrary* passLib = [[PKPassLibrary alloc] init]; 


NSArray * passArray = [passLib passes]; 

int currentPasses=[passArray count]; 

// Dưới đây là những hẻm prevPasses đã hiện diện trong Passbook.You thể khởi nó trong - // (void) viewDidLoad phương pháp

if(currentPasses>prevPasses) 
{ 
NSLog(@"Pass Has Been successfully Added");  
} 

else 
{ 

NSLog(@"Cancel Button Clicked"); 

} 

}

// Nhưng trong trường hợp của việc cập nhật cùng vượt qua, vượt qua đếm không làm tăng kết quả thực hiện của els e phần // cho dù bạn đang nhấn nút hủy hoặc nâng cấp. Do đó, bạn cần cung cấp thêm một số logic để // theo dõi nó.

2

thử này,

-(void) addPassesViewControllerDidFinish:(PKAddPassesViewController *)controller { 

    if (self.HKPass) { 
     PKPassLibrary *pkLibrary = [[PKPassLibrary alloc] init]; 
     if ([pkLibrary containsPass:self.HKPass]) 
       // add or update clicked 
     else 
      // Cancel Clicked 

    } 
    [controller dismissModalViewControllerAnimated:YES]; 

} 

Cảm ơn

Các vấn đề liên quan