是和不是...取決於你如何設置你的應用程序。要將視圖推到導航堆棧上,您需要有一個導航控制器。
您的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