Ios 如何使用在main.storyboard中创建的原型单元阵列填充右侧swreveal视图控制器
我是新来的堆栈溢出,这是我的第一篇文章,所以请耐心等待我 我有我的sw_后方和sw_前方设置,它们工作完美 然而,当我尝试为我的sw_右键创建一个充满原型单元格的表视图时,我发现当我尝试滑动或甚至按下按钮访问右菜单时,应用程序崩溃,没有任何错误,打印到日志中 (我在2个独立的swift文件rearVc和rightVC中有2个数组,链接到2个独立的表视图sw\ U rear和sw\ U right) 我已经在网上搜索了一周(我所有的谷歌超链接都是紫色的!!),似乎根本找不到答案。我原以为将这段代码(在我的后启示表vc中找到)复制到我的右表vc中会起作用,但不幸的是没有 (以SWIFT编码,仅供参考,我使用swrevealvc的桥接头,因为我不知道obj c) 正如你所看到的,我正在使用“cell.detailTextLabel?.text”,这样我在main.storyboard中构建的定制原型单元格将填充我的列表 两者都正确链接到我的导航控制器以及其他场景 我知道那部分很好,我只是被代码卡住了 在我的根视图控制器中,我正在运行这段代码,它就像一个符咒,所以没有问题Ios 如何使用在main.storyboard中创建的原型单元阵列填充右侧swreveal视图控制器,ios,swift,xcode,uitableview,swrevealviewcontroller,Ios,Swift,Xcode,Uitableview,Swrevealviewcontroller,我是新来的堆栈溢出,这是我的第一篇文章,所以请耐心等待我 我有我的sw_后方和sw_前方设置,它们工作完美 然而,当我尝试为我的sw_右键创建一个充满原型单元格的表视图时,我发现当我尝试滑动或甚至按下按钮访问右菜单时,应用程序崩溃,没有任何错误,打印到日志中 (我在2个独立的swift文件rearVc和rightVC中有2个数组,链接到2个独立的表视图sw\ U rear和sw\ U right) 我已经在网上搜索了一周(我所有的谷歌超链接都是紫色的!!),似乎根本找不到答案。我原以为将这段代码
import Foundation
class aVC : UIViewController {
@IBOutlet var menuButtonLeft: UIBarButtonItem!
@IBOutlet var menuButtonRight: UIBarButtonItem!
override func viewDidLoad() {
menuButtonLeft.target = self.revealViewController()
menuButtonLeft.action = #selector(SWRevealViewController.revealToggle(_:))
menuButtonRight.target = self.revealViewController()
menuButtonRight.action = #selector(SWRevealViewController.rightRevealToggle(_:))
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
非常感谢您的帮助,我更愿意添加任何需要的信息
谢谢
(抱歉,我无法添加图片)解决方案:
嗨,在绕圈子转了几个小时后,我终于找到了一个解决办法,一个极其简单的解决办法。
在SWRevealViewController.m中,缺少三个重要部分。我根本不知道obj-c,但我认为这些行缺少rightViewController的代码,所以在添加它们之后,一切都正常了
- (id)init
{
return [self initWithRearViewController:nil frontViewController:nil rightViewController:nil];
}
- (id)initWithRearViewController:(UIViewController *)rearViewController frontViewController:(UIViewController *)frontViewController rightViewController:(UIViewController *)rightViewController;
{
self = [super init];
if ( self )
{
[self _initDefaultProperties];
[self _performTransitionOperation:SWRevealControllerOperationReplaceRearController withViewController:rearViewController animated:NO];
[self _performTransitionOperation:SWRevealControllerOperationReplaceFrontController withViewController:frontViewController animated:NO];
[self _performTransitionOperation:SWRevealControllerOperationReplaceRightController withViewController:rightViewController animated:NO];
}
我只加了一句
return [self initWithRearViewController:nil frontViewController:nil rightViewController:nil];
及
及
线条
编辑2(请求的信息)
解决方案:
嗨,在绕圈子转了几个小时后,我终于找到了一个解决办法,一个极其简单的解决办法。
在SWRevealViewController.m中,缺少三个重要部分。我根本不知道obj-c,但我认为这些行缺少rightViewController的代码,所以在添加它们之后,一切都正常了
- (id)init
{
return [self initWithRearViewController:nil frontViewController:nil rightViewController:nil];
}
- (id)initWithRearViewController:(UIViewController *)rearViewController frontViewController:(UIViewController *)frontViewController rightViewController:(UIViewController *)rightViewController;
{
self = [super init];
if ( self )
{
[self _initDefaultProperties];
[self _performTransitionOperation:SWRevealControllerOperationReplaceRearController withViewController:rearViewController animated:NO];
[self _performTransitionOperation:SWRevealControllerOperationReplaceFrontController withViewController:frontViewController animated:NO];
[self _performTransitionOperation:SWRevealControllerOperationReplaceRightController withViewController:rightViewController animated:NO];
}
我只加了一句
return [self initWithRearViewController:nil frontViewController:nil rightViewController:nil];
及
及
线条
编辑2(请求的信息)
您写道,失败后没有调试输出。当撞车时,标有红色的线是什么?它包含什么?您是否已设置并将故事板中的所有原型单元命名为“a”、“b”现在,我们没有在标题中加上“已解决”。我们为自己的问题发布了一个答案,以便日后对大家有所帮助。请不要在您的问题中包含解决方案,也不要添加“已解决”。您可以发布自己的答案,这是完全可以接受的。@pedrouan检查我的编辑我找到了一个解决方案,谢谢您的回答!!您写道,失败后没有调试输出。当撞车时,标有红色的线是什么?它包含什么?您是否已设置并将故事板中的所有原型单元命名为“a”、“b”现在,我们没有在标题中加上“已解决”。我们为自己的问题发布了一个答案,以便日后对大家有所帮助。请不要在您的问题中包含解决方案,也不要添加“已解决”。您可以发布自己的答案,这是完全可以接受的。@pedrouan检查我的编辑我找到了一个解决方案,谢谢您的回答@佩德罗:当然可以now@pedrouan添加额外信息:)@pedrouan肯定会添加now@pedrouan添加额外信息:)
_performTransitionOperation:SWRevealControllerOperationReplaceRightController withViewController:rightViewController animated:NO];
#pragma mark - Init
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if ( self )
{
[self _initDefaultProperties];
}
return self;
}
- (id)init
{
return [self initWithRearViewController:nil frontViewController:nil rightViewController:nil];
}
- (id)initWithRearViewController:(UIViewController *)rearViewController frontViewController:(UIViewController *)frontViewController rightViewController:(UIViewController *)rightViewController;
{
self = [super init];
if ( self )
{
[self _initDefaultProperties];
[self _performTransitionOperation:SWRevealControllerOperationReplaceRearController withViewController:rearViewController animated:NO];
[self _performTransitionOperation:SWRevealControllerOperationReplaceFrontController withViewController:frontViewController animated:NO];
[self _performTransitionOperation:SWRevealControllerOperationReplaceRightController withViewController:rightViewController animated:NO];
}
return self;
}