是和不是...取决于你如何设置你的应用程序。要将视图推到导航堆栈上,您需要有一个导航控制器。
您的NSObject是否可以访问此导航控制器 - 您可能必须设置一个委托方法,该方法在警报视图委托在您的NSObject中被调用时从委托视图中调用。
我只是想知道为什么你在NSObject中显示UIAlertView,为什么不在UIView或UIViewController中显示它?
CustomObject.h
@protocol CustomObjectDelegate<NSObject>
@optional
- (void)customObjectAlertViewDidClickOk;
@end
@interface CustomObject : NSObject <UIAlertViewDelegate>{
id<CustomObjectDelegate> delegate;
}
@property (nonatomic, assign) id<CustomObjectDelegate> delegate;
@end;
CustomObject.m
@synthesize delegate;
// then put this:
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
[delegate customObjectAlertViewDidClickOk];
}
那么你的视图控制器的.h文件需要包括自定义对象和分配的委托方法:
#include "CustomObject.h"
@interface MyViewController : UIViewController <CustomObjectDelegate> {
}
@end
和.m viewDidLoad(或类似的):
- (void)viewDidLoad{
CustomObject *obj = [[CustomObject alloc] init];
[obj setDelegate:self];
}
- (void)customObjectAlertViewDidClickOk{
AnotherViewController *page = [[AnotherViewController alloc] initWithNibName:nil bundles:nil];
[self.navigationController pushViewController:page];
}
多数民众赞成我该怎么做 - 因为我不太确定我明白你的要求。 :)这些都是我的头顶 - 所以不要把它写成信件,但你有基础开始。你可以建立它。查看@协议和委托方法,它的全部内容。 :)
感谢您的答复thomas..I使用服务和服务是一个NSObject类..因此,无论何时我遇到服务错误我显示警报视图..我在NSObject类中使用了alertview的clickedButtonAtIndex方法,但我不知道如何从这种方法推动导航控制器..可以请你帮我关于这个..如果可能请你张贴一个示例代码.. – racharambola 2010-09-08 20:55:38
我不确定你的真正含义。您可能需要自己发布一些代码才能帮助您。不过,我建议你只是创建一个gts在'clickedButtonAtIndex'中调用的委托方法。我会用一个例子更新我的文章... – 2010-09-08 23:32:56
谢谢托马斯..我会试一试..我包括一些代码..请看看它,如果你有一些时间..再次感谢您的时间 – racharambola 2010-09-09 00:21:21