我是Objective C新手,並且遇到了一個我認識的問題,必須是一個非常簡單的問題 - 我想也許我錯誤地接近了它。Objective C - UIAlertViewDelegate無法訪問其他類中的UILabel
我創建了一個UIAlertViewDelegate類,我想成爲我的View Controller類中的一些UIAlertViews的代理。
當用戶按下按鈕並輸入一些文本時,我想用我的ViewController類中的標籤更新該文本。但是,我顯然不能從我的UIAlertViewDelegate類中引用標籤「outputLabel」,除非我以某種方式傳遞它。
我得到的錯誤是 「未聲明的標識符的 'outputLabel' 使用。」
ViewController.h
@interface ViewController : UIViewController <UIAlertViewDelegate>;
...
@property (strong) UIAlertViewDelegate *AVDelegate;
ViewController.m
- (void)viewDidLoad
{
UIAlertViewDelegate *AVDelegate;
AVDelegate = [[UIAlertViewDelegate alloc] init];
[super viewDidLoad];
}
- (IBAction)doAlertInput:(id)sender {
UIAlertViewDelegate *AVDelegate;
AVDelegate = [[UIAlertViewDelegate alloc] init];
UIAlertView *alertDialogue;
alertDialogue = [[UIAlertView alloc]
initWithTitle:@"Email Address"
message:@"Please Enter Your Email Address:"
delegate:self.AVDelegate
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
alertDialogue.alertViewStyle=UIAlertViewStylePlainTextInput;
[alertDialogue show];
}
UIAlertViewDelegate.m
#import "UIAlertViewDelegate.h"
@implementation UIAlertViewDelegate
- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex];
NSString *alertTitle = [alertView title];
if ([alertTitle isEqualToString:@"Alert Button Selected"] || [alertTitle isEqualToString:@"Alert Button Selected"]) {
if ([buttonTitle isEqualToString:@"Maybe Later"])
{
[email protected]"User Clicked: 'Maybe Later'";
UIAlertViewDelegate.h
@interface UIAlertViewDelegate : UIViewController <UIAlertViewDelegate,UIActionSheetDelegate>;
很多年前我用Java做了一些工作。我想我必須以某種方式,但林不知道通過我UIAlertViewDelegate類視圖上的語法,將不勝感激在正確的方向指向...
詹姆斯
@ you:http://stackoverflow.com/questions/8688153/ios-beginner-uialertview-window-with-3-buttons-check-what-button-was-pressed看看這個'問題'中的代碼 –
「當用戶按下一個按鈕並輸入一些文本時,我想讓我的ViewController類中的標籤更新爲該文本。」我試圖弄清楚你在這裏做什麼,以及它如何處理警報視圖。你究竟想要做什麼?我可以告訴你,你不必製作一個UIAlertViewDelegate類,你的視圖控制器將成爲alert視圖的代表。 –