标签: uistoryboard

UISearchDisplayController在viewDidUnload之后导致崩溃

我有一个使用StoryBoards的项目,并UISearchDisplayController在a的上下文中使用UINavigationController,它出现在根视图控制器中.当我将一个新的视图控制器推入堆栈并导致模拟内存警告(或实际上得到一个低内存警告).上一个视图控制器成功卸载其视图.但是,当我从堆栈中弹出第二个视图控制器时,我得到了一个EXC_BAD_ACCESS.我打开了NSZombies并发现了这个:

[UISearchDisplayController retain]:发送到解除分配的实例0xb13aa30的消息

我不是(至少在我的代码中)将该消息发送给UISearchDisplayController.用编程方式说,我没有做任何事情.断点显示我甚至没有进入viewDidLoad第一个视图控制器.

但是好奇的是:对于笑声和咯咯笑声,我决定彻底retain改变我的SDC viewDidLoad,只是为了看看会发生什么,不会发生崩溃.但是,我的UISearchDisplayController实例是nil.

我做了一个回溯并得到了这个输出:

#0  0x01e30e1e in ___forwarding___ ()
#1  0x01e30ce2 in __forwarding_prep_0___ ()
#2  0x01dd1490 in CFRetain ()
#3  0x01eb69c0 in +[__NSArrayI __new::] ()
#4  0x01e0a00a in -[__NSPlaceholderArray initWithObjects:count:] ()
#5  0x01e34f52 in +[NSArray arrayWithObjects:count:] ()
#6  0x01e5e084 in -[NSDictionary allValues] ()
#7  0x01035272 in -[UINib instantiateWithOwner:options:] ()
#8  0x00edce2c in -[UIViewController _loadViewFromNibNamed:bundle:] ()
#9  0x00edd3a9 in -[UIViewController loadView] …
Run Code Online (Sandbox Code Playgroud)

iphone uisearchdisplaycontroller uistoryboard

16
推荐指数
2
解决办法
3924
查看次数

无法在捆绑中加载NIB:'NSBundle使用故事板时

当我使用我的应用程序一段时间后,我收到以下错误.通常需要50到100次动作才能导致坠机.虽然我正在使用故事板,但我没有理解它,这是一个NIB错误.

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 
'Could not load NIB in bundle: 'NSBundle 
</Users/me/Library/Application Support/iPhone Simulator/5.0/Applications/GUID/appname.app>
(loaded)' with name 'MainStoryboard_iPhone.storyboardc/q8p-MH-tsT-view-acD-hJ-g0C''
Run Code Online (Sandbox Code Playgroud)

我不是100%肯定从哪里开始寻找,但我认为这意味着故事板是腐败的?

我查看了我的所有源代码,并且我没有任何字符串"nib",因此没有nibWithNibName调用等.我也没有MainWindow.xib,虽然我尝试创建一个.我不确定在使用故事板时是否可以将其设置为主界面.但.xcodeproj/project.pbxproj文件中有一个.nib引用:

/* Begin PBXBuildRule section */
148BDD4C14AE8D5E002C30ED /* PBXBuildRule */ = {
    isa = PBXBuildRule;
    compilerSpec = com.apple.compilers.proxy.script;
    fileType = wrapper.nib;
    isEditable = 1;
    outputFiles = (
    );
    script = "$(DEVELOPER_BIN_DIR)/ibtool\n";
};
Run Code Online (Sandbox Code Playgroud)

我在Xcode 4.2中使用故事板.我的主要故事板设置为MainStoryboard_iPhone,其文件名为MainStoryboard_iPhone.storyboard.

崩溃发生在iOS 5模拟器中.

iphone xcode ios uistoryboard

16
推荐指数
2
解决办法
1万
查看次数

UILabel的字体颜色没有变化

我试图在UILabel上显示带有粗体黑色字体和大小50的数字.

经过一些失败的尝试后,我才意识到无论我将字体设置为什么颜色,它总是设置为lightGray.除了下面我还需要做些什么吗?

[DisplayLabel setFont:[UIFont fontWithName:[NSString stringWithUTF8String:"HelveticaNeue-Bold"] size:50]];
DisplayLabel.textColor = [UIColor brownColor];
DisplayLabel.textAlignment = NSTextAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)

我正在使用故事板将标签添加到视图中.

objective-c uilabel uifont ios uistoryboard

16
推荐指数
2
解决办法
7504
查看次数

故事板popover被解雇,委托方法没有调用

我有一个视图控制器,使用故事板segue在弹出框中显示.

在此输入图像描述

在呈现视图控制器中,我有以下代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let svc = segue.destinationViewController as? SettingsViewController {
        svc.popoverPresentationController?.delegate = self
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,事实证明,所呈现的视图控制器,即使它显示为酥料饼,具有modalPresentationStyle'.Modal,因此一个nil popoverPresentationController.奇怪的!

所以,我更新了代码如下:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let svc = segue.destinationViewController as? SettingsViewController {
        svc.modalPresentationStyle = .Popover
        svc.popoverPresentationController?.delegate = self
    }
}
Run Code Online (Sandbox Code Playgroud)

svc.popoverPresentationController代表现在设置好了,但如果酥料饼是由用户解雇攻外,没有任何的UIPopoverPresentationControllerDelegate委托方法(如popoverPresentationControllerShouldDismissPopover被调用.我在想什么?

uipopovercontroller ios uistoryboard uistoryboardsegue

16
推荐指数
1
解决办法
1183
查看次数

在故事板中设置背景图像

我可以从故事板设置背景图像吗?我在代码中设置了背景:

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png"))
}
Run Code Online (Sandbox Code Playgroud)

ios uistoryboard

16
推荐指数
1
解决办法
3万
查看次数

如何在多个UIViewControllers之间共享一个故事板场景

我完全重新制定了这个问题,因为我知道我原本偏离轨道但是让我无法解决问题.参考这张图片...... 故事板图

我想要在代码中创建或操作segue(以黄色突出显示),以便主视图是MFMasterViewController(以红色突出显示)的多个子类中的任何一个.

做这个时使用笔尖我可以创建一个笔尖,SharedNib.xib和设置类的MFMasterViewController,然后创建我的子类,比方说MFMasterViewControllerSubclassA,MFMasterViewControllerSubclassB等和然后实例化我想要使用哪个子...

MFMasterViewControllerSubclassA *controller = [[MFMasterViewControllerSubclassA alloc] initWithNibName:@"SharedNib" bundle:nil];
Run Code Online (Sandbox Code Playgroud)

要么...

MFMasterViewControllerSubclassB *controller = [[MFMasterViewControllerSubclassB alloc] initWithNibName:@"SharedNib" bundle:nil];
Run Code Online (Sandbox Code Playgroud)

等等

关于如何使用故事板来解决这个问题的任何线索?

在我的情况下,想要这样做的原因是我的所有子类都是相同的tableview和数据,但排序方式不同,并且对于写入cels详细文本的内容有所不同.我怀疑这是一种并不罕见的模式.

干杯和TIA,佩德罗:)

uiviewcontroller ios uistoryboard segue uistoryboardsegue

15
推荐指数
1
解决办法
4747
查看次数

如何使用Interface Builder中的Storyboard连接页面视图控制器的dataSource出口

根据苹果的文档在这里,我们应该能够通过连接网点页面视图控制器加入到故事板,然后选择设置数据源.

使用故事板创建页面视图控制器界面

基于页面的应用程序Xcode模板创建一个新的项目,其中页面视图控制器作为初始场景.

要将页面视图控制器添加到现有故事板,请执行以下操作:

  1. 将页面视图控制器拖出库.将页面视图控制器场景添加到故事板.
  2. 在"属性"检查器中,设置适当的选项.
  3. (可选)通过连接相应的插座来设置委托,数据源或两者.
  4. 通过在"属性"检查器中选择"是初始视图控制器"选项(或以其他方式在用户界面中显示视图控制器)将其显示为第一个视图控制器.

然后我像这样定义了一个UIPageViewController子类

@interface DetailsPageViewController : UIPageViewController <UIPageViewControllerDataSource>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试连接数据源插座时,它不会突出显示控制器或允许连接它.我也试过在其他控制器上实现UIPageViewControllerDataSource,但我有同样的问题,无法连接插座.

有人可以帮忙吗?

objective-c interface-builder uistoryboard uipageviewcontroller

15
推荐指数
2
解决办法
3991
查看次数

如何在initWithCoder中通过storyboard添加自定义UIView的维度:?

我有一个自定义的UIView子类,它在初始化过程中以编程方式添加子视图.我希望这个子视图与自定义UIView的宽度相同.

如果我以编程方式添加自定义UIView,我的代码工作正常.但是,当通过StoryBoard初始化UIView时,我无法获得自定义UIView的宽度.

// Init programatically
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        NSLog (@"view: %f", self.frame.size.width);   //WILL return width
        NSLog (@"view: %f", self.bounds.size.width);  //WILL return width
    }
    return self;
}

// Init from storyboard
- (id)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {

        NSLog (@"view: %f", self.frame.size.width);   //Returns 0
        NSLog (@"view: %f", self.bounds.size.width);  //Returns 0
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

当initWithCoder:由StoryBoard运行时,UIView的框架和边界都返回为0.有没有办法 initWithCoder 中访问UIView的尺寸?或者,至少调用drawRect:之前访问维度?

谢谢.

objective-c uiview uistoryboard

15
推荐指数
1
解决办法
6579
查看次数

如何知道当前的故事板名称?

我想知道当前加载的故事板是什么,我使用下面的代码,但它仍然是我的主故事板而不是当前.

//This get me the Main storyboard 
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"];
Run Code Online (Sandbox Code Playgroud)

iphone storyboard ios uistoryboard uistoryboardsegue

15
推荐指数
2
解决办法
2万
查看次数

启动纵向和横向vs分屏的screen.storyboard

我必须为新iPad实现分屏功能,我从Apple的doc获得了一个解决方法,以支持我的应用程序:https://developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad /QuickStartForSlideOverAndSplitView.html#//apple_ref/doc/uid/TP40015145-CH13-SW1

在本文档中,请检查第2点:

提供LaunchScreen.storyboard文件(而不是像iOS 7及更早版本中那样的.png图像文件)

这就是我必须使用Launch screen.storyboard的原因.现在,拆分工作完美,但对于我的应用程序,我有单独的启动屏幕,默认纵向和默认景观.但是现在我已经采用了故事板,我无法为不同的方向定制启动屏幕.甚至我无法在Launch屏幕中编写相同的代码,否则它会给我错误.

此外,我尝试使用大小类为两个方向提供单独的图像视图,但我没有成功.

如果有人建议我如何使用不同的图像实现风景和肖像的Launch screen.storyboard,那将是很有帮助的.

景观 肖像

ipad ios uistoryboard xcode-storyboard launch-screen

15
推荐指数
1
解决办法
2003
查看次数