gpt4 book ai didi

iphone - UIAlertView问题

转载 作者:行者123 更新时间:2023-12-03 20:57:51 24 4
gpt4 key购买 nike

我有一个小疑问。我有一个 NSObject 类,我试图在其中显示警报 View 。因此,当我点击“确定”按钮时显示警报 View 后,我想将导航 Controller 插入堆栈。我可以从通用 NSObject 类推送导航 Controller 吗?请让我知道伙计们..感谢您的时间..

这是代码..

- (void) alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)buttonIndex{    
SettingsViewController *homeView = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil];
[self.navigationController pushViewController:homeView animated:NO];
[homeView release];

}

我正在创建一个名为 UINavigationController 类型的导航 Controller 的属性,当我捕获错误时,我正在显示一个警报 View ,并且我正在使用上面的方法来推送 View Controller ,但它不起作用..

最佳答案

是或否...取决于您如何设置应用程序。要将 View 推送到导航堆栈,您需要有一个导航 Controller

您的 NSObject 是否有权访问此导航 Controller - 您可能需要设置一个委托(delegate)方法,当在您的 NSObject 中调用警报 View 委托(delegate)时,该方法会从您的委托(delegate) View 中调用。

我只是想知道为什么你在 NSObject 中显示 UIAlertView,为什么不在 UIView 或 UIViewController 中显示它?

自定义对象.h

@protocol CustomObjectDelegate<NSObject>
@optional
- (void)customObjectAlertViewDidClickOk;
@end

@interface CustomObject : NSObject <UIAlertViewDelegate>{
id<CustomObjectDelegate> delegate;
}
@property (nonatomic, assign) id<CustomObjectDelegate> delegate;
@end;

自定义对象.m

@synthesize delegate;
// then put this:
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
[delegate customObjectAlertViewDidClickOk];
}

然后您的 ViewController .h 文件需要包含自定义对象并分配委托(delegate)方法:

#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 和委托(delegate)方法,一切都在那里。 :)

关于iphone - UIAlertView问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3671544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com