我正在学习iOS开发并正在开发一个简单的应用程序。我有两个视图控制器,ViewC_0
和ViewC_1
,由导航控制器管理。对于两个ViewC,我都有一个按钮,弹出UIAlertView
以提示用户输入密码。关于UIAlertView的所有内容在ViewC_0
和ViewC_1
之间都是相同的,除了alertView:theAlert:clickedButtonAtIndex
选择器,因为它们会自然地执行不同的操作。我也希望密码不同。
即使这相对简单并且不需要大量代码,我也不想在两个视图控制器上复制它。我对可能的UIAlertView代码通用方法的想法是
PasswordViewController
的ViewController类,并将ViewC_0
和ViewC_1
作为其子类。然后,他们将使用超类中的方法来管理UIAlertView。创建一个继承自NSObject的类并指定一个协议。就像是: #import
@protocol AlertHelperProtocol <NSObject>
@required
- (void)actionForValidPassword;
@optional
@end
@interface AlertHelper : NSObject <UIAlertViewDelegate>
- (id)initWithPassword:(NSString *)password andDelegate:(id)target;
- (void)promptForPassword;
@end
iOS开发中是否有适当或标准的方法?后一种方法对我来说似乎更清晰,虽然我不确定如果一个类试图使用没有活动View的AlertHelper会发生什么。它还允许我了解协议和委托,所以这很好。