Objective c 单击横幅按钮项目时应用程序崩溃
我的应用程序底部有一个旋转横幅,显示广告,当用户单击旋转时,带有简单网络视图的viewcontroller和顶部的工具栏显示的是特定于该横幅的网页。这一切都很好,除了我需要一个关闭按钮在工具栏上。由于某种原因,在我将关闭按钮链接到一个操作之后,当单击该操作时,应该在日志中显示“关闭”。我运行应用程序并单击按钮,出现错误访问错误,错误日志中没有消息 这是显示带有webview的viewcontroller的位置。它是从应用程序委托中的方法调用的,该方法可以从应用程序中的任何位置访问Objective c 单击横幅按钮项目时应用程序崩溃,objective-c,xcode,uitoolbar,Objective C,Xcode,Uitoolbar,我的应用程序底部有一个旋转横幅,显示广告,当用户单击旋转时,带有简单网络视图的viewcontroller和顶部的工具栏显示的是特定于该横幅的网页。这一切都很好,除了我需要一个关闭按钮在工具栏上。由于某种原因,在我将关闭按钮链接到一个操作之后,当单击该操作时,应该在日志中显示“关闭”。我运行应用程序并单击按钮,出现错误访问错误,错误日志中没有消息 这是显示带有webview的viewcontroller的位置。它是从应用程序委托中的方法调用的,该方法可以从应用程序中的任何位置访问 BannerV
BannerViewer* viewer = [BannerViewer alloc];
[viewer setUrl:db.WEBurl];
[_window addSubview: viewer.view];
BannerViewer.h
@interface BannerViewer : UIViewController {
IBOutlet UIWebView* webView;
IBOutlet UIBarButtonItem* close;
IBOutlet UINavigationBar* navBar;
NSURL *url;
}
@property(nonatomic,strong)IBOutlet UIWebView* webView;
@property(nonatomic,strong)NSURL *url;
@property(nonatomic,strong)IBOutlet UIBarButtonItem* close;
@property(nonatomic,strong)IBOutlet UINavigationBar* navBar;
-(IBAction)closeWindow:(id)sender;
@end
BannerViewer.m
-(IBAction)closeWindow:(id)sender{
NSLog(@"close");
}
提前谢谢你的帮助
BannerViewer* viewer = [BannerViewer alloc];
分配对象后,需要通过调用指定的初始化器对其进行初始化。对于以编程方式实例化的UIViewController
的子类,您需要如下内容:
BannerViewer* viewer = [[BannerViewer alloc] initWithNibName:nil bundle:nil];
我也遇到了这个问题 为了修复它,我将新的UIViewController设置为一个属性
@property (nonatomic, strong) ThirdViewController *theSecondView;
基于xcode提供给我的少量信息,这看起来像是内存问题。似乎正在发生的是,当按下按钮时,视图被创建,但ARC在创建后不久就会释放它在内存中的位置,因此单击按钮只会使Xcode抛出一个合适的值
如果使用了strong属性,则新视图在内存中会保留一个更强大的引用,直到父视图控制器也被释放后才会释放。不,仍然会崩溃,很难知道通过IB链接时在何处放置断点以获取更多信息