Да и нет ... в зависимости от того, как настроено ваше приложение. Для перемещения представлений в стек навигации вам необходим контроллер навигации .
Имеет ли ваш NSObject доступ к этому контроллеру навигации - вам, возможно, придется настроить метод делегата, который вызывается из вашего представления делегата, когда делегат представления оповещения вызывается в вашем NSObject.
Мне просто интересно, почему вы отображаете UIAlertView в NSObject, почему вы не отображаете его в 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];
}
Тогда ваш файл ViewController .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];
}
Вот как бы я это сделал - учитывая, что я не слишком уверен, что понимаю, что вы спрашиваете. :) Это все от моей головы тоже - так что не принимайте это буква за буквой, но у вас есть основа для начала. Вы можете основываться на этом. Посмотрите @protocols и делегируйте методы, все там. :)