我发现这个问题的帖子很少,但没有一个解决了我的问题.
说我喜欢..
我试图将ViewControllerB添加为ViewControllerA中的子视图,但是它会抛出类似" fatal error: unexpectedly found nil while unwrapping an Optional value
" 的错误.
以下是代码......
ViewControllerA
var testVC: ViewControllerB = ViewControllerB();
override func viewDidLoad()
{
super.viewDidLoad()
self.testVC.view.frame = CGRectMake(0, 0, 350, 450);
self.view.addSubview(testVC.view);
// Do any additional setup after loading the view.
}
Run Code Online (Sandbox Code Playgroud)
ViewControllerB只是一个带有标签的简单屏幕.
ViewControllerB
@IBOutlet weak var test: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
test.text = "Success" // Throws ERROR here "fatal error: unexpectedly found nil while unwrapping an Optional value"
}
Run Code Online (Sandbox Code Playgroud)
编辑
使用来自用户答案的建议解决方案,ViewControllerA中的ViewControllerB将离开屏幕.灰色边框是我为子视图创建的框架.
我想从我的代码中找到布局的背景颜色.有没有办法找到它?类似的东西linearLayout.getBackgroundColor()
?
我正在尝试向NSDictionary添加多个对象,比如
var myDict: NSDictionary = [["fname": "abc", "lname": "def"], ["fname": "ghi", "lname": "jkl"], ...]
Run Code Online (Sandbox Code Playgroud)
甚至可以这样做吗?如果没有,请建议更好的方法.我实际上需要将此NSDictionary转换为JSON字符串并将其发送到服务器,因此我需要NSDictionary中的多个对象.
我有一个兼容iPhone和iPad布局的应用程序.对于iPhone布局,我创建了Action Sheet和Pop over iPad.问题是弹出箭头没有指向我点击的按钮.以下是我的代码....
let actionSheet = UIAlertController(title: "Choose an option",
message: "Message",
preferredStyle: .ActionSheet)
...
if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad
{
// for iPad
actionSheet.popoverPresentationController?.sourceView = self.view
actionSheet.popoverPresentationController?.sourceRect = self.view.bounds;
actionSheet.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.allZeros;
}
self.presentViewController(actionSheet, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud) 我正在尝试自动显示注释标题,而不是在点击时显示它.我使用下面的代码来显示注释并使其在地图上居中.
self.ann.setCoordinate(currentLocation2D)
self.ann.title = "Title"
self.ann.subtitle = "Subtitle"
self.mapView.addAnnotation(self.ann);
self.span = MKCoordinateSpanMake(0.005, 0.005)
self.region = MKCoordinateRegion(center: currentLocation2D, span: self.span)
self.mapView.setRegion(self.region, animated: true)
Run Code Online (Sandbox Code Playgroud)
我能看到的title
,subtitle
而CalloutAccessoryView
当我点击的注解,但是可能无法自动显示.
好.我已经将一个项目导入了我的eclipse,现在每当我保存一个xml文件时,就会出现这个弹出窗口,例如" 原始文件'*.xml'已被删除或无法访问. "我已多次清理并修复了我的项目但没用
有谁解决了这个问题?
我想补充UIActivityIndicatorView
到UIAlertView
,但不能把它做.我看过这个实现的帖子,发现它只适用于iOS7以下的版本.
以下是我试过的代码......
var alert: UIAlertView = UIAlertView(title: "Title", message: "Please wait...", delegate: nil, cancelButtonTitle: "Cancel");
var loadingIndicator: UIActivityIndicatorView = UIActivityIndicatorView(frame: CGRectMake(0.0, 0.0, 10.0, 10.0)) as UIActivityIndicatorView
loadingIndicator.center = self.view.center;
loadingIndicator.hidesWhenStopped = true
loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
loadingIndicator.startAnimating();
alert.addSubview(loadingIndicator);
alert.show();
Run Code Online (Sandbox Code Playgroud)
为了完成这项工作,iOS7及以上版本有什么具体的事情要做吗?
我正在尝试使用jeremy feinstein的SlidingMenu库开发一个应用程序,我发现它非常有趣.我已经设置了所有内容并创建了一个示例项目,以检查我是否能够实现滑动菜单,但遗憾的是我在应用程序中看不到任何滑动菜单.
这就是我做的事情,
从HERE下载SlidinMenu 并作为android现有项目导入eclipse.改变了谷歌API级别.(现在没有红色标记了.)
创建了一个新项目,并向其添加了滑动菜单库.
正如jfeinstein解释的那样,我将以下代码添加到我的MainActivity.java中
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Title !");
setContentView(R.layout.activity_main);
SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setShadowWidthRes(R.dimen.shadow_width);
menu.setShadowDrawable(R.drawable.shadow);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
menu.setFadeDegree(0.35f);
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
menu.setMenu(R.layout.menu);
}
Run Code Online (Sandbox Code Playgroud)
}
和我的activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<com.slidingmenu.lib.SlidingMenu
xmlns:sliding="http://schemas.android.com/apk/res-auto"
android:id="@+id/slidingmenulayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
sliding:viewAbove="@layout/testing"
sliding:viewBehind="@layout/testing_two"
sliding:touchModeAbove="margin"
sliding:behindWidth="@dimen/shadow_width"
sliding:behindScrollScale="0.5"
sliding:shadowDrawable="@drawable/shadow"
sliding:shadowWidth="@dimen/shadow_width"
sliding:fadeEnabled="true"
sliding:selectorEnabled="true"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
和menu_frame.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)
testing.xml
<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud) 我open
BaseViewController
在核心框架中有一个类,它实现了 tableview 数据源方法。假设我有另一个类(在模块之外)ClassA
,BaseViewController
因为它是超类。当我尝试覆盖 tableview 数据源方法时,它抛出了这个错误Overriding non-open instance method outside of its defining module
。
BaseViewController
看起来像这样
open class BaseViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
...
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 0
}
public func numberOfSections(in tableView: UITableView) -> Int {
return 0
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return UITableViewCell()
}
}
Run Code Online (Sandbox Code Playgroud)
A类
import CustomCoreFramework
class ClassA : BaseViewController { …
Run Code Online (Sandbox Code Playgroud) swift ×6
android ×4
ios ×4
inheritance ×1
ipad ×1
json ×1
key-value ×1
menu ×1
mkannotation ×1
mkmapview ×1
nsdictionary ×1
popover ×1
sliding ×1
uialertview ×1
uitableview ×1