默认情况下,Xcode 6界面构建器具有新的复选框"使用大小类".它使视图自适应.

当我尝试在我的故事板中的2个视图之间制作segue时,我有了新的选择:

相反旧:

现在我们有"显示"和"呈现模态"而不是"推"和"模态".旧选项标记为已弃用.我选择了"show"选项,因为在segue设置中它称为"show(例如push)

但它没有推动.Segue动画看起来像从底部滑动(模态),导航栏消失.
问题是:如何让"show"像push一样工作?是否可以或者我应该使用"推(弃用)"代替?我在哪里可以找到有关新型segue的任何信息?我在iOS8开发人员库中找到的唯一一件事是Storyboards帮助您设计用户界面,但没有关于"show"segue的信息.
我试图创建新项目,"show"真的像"推"一样工作.我认为我的项目中的问题可能是因为我重复使用导航控制器这样的代码,但我不知道如何解决它.
if ( [segue isKindOfClass: [SWRevealViewControllerSegue class]] ) {
SWRevealViewControllerSegue *swSegue = (SWRevealViewControllerSegue*) segue;
swSegue.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) {
UINavigationController* navController = (UINavigationController*)self.revealViewController.frontViewController;
[navController setViewControllers: @[dvc] animated: NO ];
[self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
};
}
Run Code Online (Sandbox Code Playgroud)
之后我尝试在MainViewController之后推送NewViewController

我似乎只是iOS 7,iOS 7.1问题.
如果您创建新的UITableViewController类,您将看到用于覆盖的注释方法:
/*
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
// Configure the cell...
return cell
}
*/
Run Code Online (Sandbox Code Playgroud)
您可以取消注释方法,但由于错误,它将无法工作
'UITableView?' does not have a member named 'dequeueReusableCellWithIdentifier'
Run Code Online (Sandbox Code Playgroud)
原因是:tableView被定义为可选类型" UITableView? ",你必须在调用方法之前解包tableView.例如这样:
let cell = tableView!.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
Run Code Online (Sandbox Code Playgroud)
但我们可以让它们隐式解包,并且不使用tableView !
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
return cell
}
Run Code Online (Sandbox Code Playgroud)
问题是:为什么xcode将它们定义为可选项?是否有任何理由或优势与隐含的未解决的期权?我们可以肯定,这种方法总是得到非零值吗?
我们还会有另一个错误
Constant 'cell' inferred to have type 'AnyObject!', which may be …Run Code Online (Sandbox Code Playgroud) 我遇到了简单的问题,无法找到任何解决方案.
MyCell.xib有文件所有者MyCell : UITableViewCell类.
我这样用它:
viewDidLoad方法:
let nib = UINib(nibName: "MyCell", bundle: nil)
self.tableView.register(nib, forCellReuseIdentifier: "myIdentifier")
Run Code Online (Sandbox Code Playgroud)
tableView cellForRowAt方法:
let cell = tableView.dequeueReusableCell(withIdentifier: "myIdentifier", for: indexPath) as? MyCell
Run Code Online (Sandbox Code Playgroud)
它运作良好.
我将我的类子类化为添加一些新方法:
class SuperCell : MyCell {
func coolMethod {
print("cool")
}
}
Run Code Online (Sandbox Code Playgroud)
并尝试使用它:
let cell = tableView.dequeueReusableCell(withIdentifier: "myIdentifier", for: indexPath) as? SuperCell
Run Code Online (Sandbox Code Playgroud)
它返回 nil
我怎样才能使它工作?
我尝试在InterfaceBuilder中使用标识符myIdentifier和类创建原型单元格SuperCell,但它没有帮助.
我只想对不同的单元类使用相同的视图(xib).
在我的情况下,我有MyCell视图(xib)的公共cell().MyCell完全描述字段(IBOutlets).此外,我想创建一些子类的另一个单元类MyCell,但它们将提供这些IBOutlet的一些行为.例如,FirstMyCell : MyCell将有方法setFieldsFrom(objectOne: ObjectOne),SecondMyCell : MyCell …
我的应用程序部署目标是iOS 7.0我想systemFontOfSize(fontSize: weight:)在iOS 8+的设备上使用方法.iOS 7不支持此方法(带weight:参数),我的应用程序崩溃.特别是对于iOS 7,我想设置Helvetica Light字体而不是SystemFont Light.
检查它的最佳方法是什么?我需要检查iOS版本还是可以检查方法?怎么样?
我使用swift并尝试过
if let font = UIFont.systemFontOfSize(12, weight: UIFontWeightLight)
Run Code Online (Sandbox Code Playgroud)
要么
respondsToSelector方法.它对我不起作用.
我的问题
当我处理时UITableView,我基本上有一个table_data包含我的部分和行的数组.
[
{
title : "section A title",
rows: [
{data: row_1_data},
{data: row_2_data}
]
},
{
title : "section B title",
rows: [
{data: row_1_data},
{data: row_2_data}
]
},
]
Run Code Online (Sandbox Code Playgroud)
我用heightForHeaderInSection,cellForRowAtindexPath,titleForHeaderInSection,didSelectRowAtindexPath方法是这样
if indexPath.section == 0 {
//section A
if indexPath.row == 0 {
//do something with table_data[0]["rows"][0]["data"]
}
elesif indexPath.row == 1 {
//do something else
}
}
if indexPath.section == 1 {
//do something for …Run Code Online (Sandbox Code Playgroud) 我有一个包含TableView部分数据的数组
let menuItems : Dictionary<String,Dictionary<String,String>>[] = [
[
"data" : [
"name":"test",
"image":"test.png"
]
],
[
"data" : [
"name":"test2",
"image":"test2.png"
]
]
]
Run Code Online (Sandbox Code Playgroud)
我正试图通过使用下标来访问它
func tableView(tableView: UITableView!, titleForHeaderInSection section: Int) -> String! {
return menuItems[section]["data"]["name"]
}
Run Code Online (Sandbox Code Playgroud)
并有错误
Could not find member 'subscript'
Run Code Online (Sandbox Code Playgroud)
我已经在stackoverflow上阅读了很多类似的问题,但仍然没有理解如何修复它.我试着打开"!" 符号并使用另一个变量 - 没有结果.
你能解释它是如何工作的吗?
我UIToolbar(在我的里面UINavigationController)有一些UIBarButtonItems 。
工具栏为blue( isTranslucent = false),按钮为white。默认的高亮颜色是gray,它看起来很难看。
我发现的唯一解决方案是更改触摸UIBarButtonItem事件。但我有很多s,在每个 s 中编写大量代码非常烦人。tintColor@IBActionUIBarButtonItem@IBAction
您是否知道如何全局更改它,或者至少知道如何子类化UIBarButtonItem以定义一次并在任何地方使用该类?
我使用 swift 3,部署目标是 iOS 9+
swift ×6
ios ×5
uitableview ×3
xcode ×3
arrays ×1
dictionary ×1
ios7 ×1
ios8 ×1
push ×1
sections ×1
storyboard ×1
subclassing ×1
subscript ×1
system-font ×1
tablecell ×1
tableview ×1
xcode6 ×1